中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]用批处理从文本提取文件名并删除
作者:
标题: [求助]用批处理从文本提取文件名并删除 上一主题 | 下一主题
fitchson
新手上路





积分 16
发帖 7
注册 2008-9-19
状态 离线
『楼 主』:  [求助]用批处理从文本提取文件名并删除

我想實現在一個txt(比如a.txt)里輸入文件名(比如A8012.exe),我要在指定的一個總目錄(總目錄下還有很多文件夾及子文件夾)下(比如C:\test),調用a.txt并刪除裡面寫的A8012.EXE這個文件,該怎么寫批處理啊?


比如在a.txt里輸入了 A8012.exe  然後此文件在c:\test\test2\A8012.exe,那么我就要刪除此A8012.EXE  也有可能在c:\test\test1\下也有這個文件名,則都要刪除。請問各位大大,這個怎么寫啊?如果在a.txt输入的是一个文件夹名,则将对总目录下的同此文件夹删除。

[ Last edited by fitchson on 2008-9-19 at 01:39 PM ]

2008-9-19 13:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  


@echo off
set /p file=<"C:\test\a.txt"
for /r "C:\test" %%a in (%file%) do (
  del /q /f "%%a"
)




2008-9-19 13:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 3 楼』:  

要求变的真快,又加了文件夹。
@echo off
set /p file=<"C:\test\a.txt"
for /r "C:\test" %%a in (%file%) do (
  del /q /f "%%a">nul 2>nul
  rd /q /s "%%a">nul 2>nul
)




2008-9-19 13:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fitchson
新手上路





积分 16
发帖 7
注册 2008-9-19
状态 离线
『第 4 楼』:  謝謝您 HAT

謝謝 HAT
可以刪除文件,如果輸入的是一個文件夾名,要刪除此文件夾及其子文件夾該怎么辦?
另外可否記錄當前時間下來,因為我想做一個刪除的記錄,要查看什麽時候刪除了什麽文件的動作,可以嗎?再次謝謝您!

[ Last edited by fitchson on 2008-9-19 at 01:57 PM ]

2008-9-19 13:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 5 楼』:  Re 4楼


@echo off
set /p file=<"C:\test\a.txt"
for /r "C:\test" %%a in (%file%) do (
  del /q /f "%%a">>"C:\test\a.log" 2>nul
  rd /q /s "%%a">>"C:\test\a.log" 2>nul
)




2008-9-19 14:05
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fitchson
新手上路





积分 16
发帖 7
注册 2008-9-19
状态 离线
『第 6 楼』:  

太感謝你了,HAT!!!

2008-9-19 14:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fitchson
新手上路





积分 16
发帖 7
注册 2008-9-19
状态 离线
『第 7 楼』:  

Hello HAT,好像日誌沒有寫入到a.log啊?

2008-9-19 16:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 8 楼』:  

a.txt的内容是什么?路径是什么?
你的批处理内容是什么?路径是什么?



2008-9-19 16:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fitchson
新手上路





积分 16
发帖 7
注册 2008-9-19
状态 离线
『第 9 楼』:  

HAT,這一句 del /q /f "%%a">>"C:\test\a.log" 2>nul 是不是把日誌記錄寫入到a.log里,但是 我執行成功了以後,a.log卻是0kb,為空

2008-9-19 17:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 10 楼』:  


@echo off
>"C:\test\a.log" type nul
set /p file=<"C:\test\a.txt"
for /r "C:\test" %%a in (%file%) do (
  >>"C:\test\a.log" echo.%%a
  del /q /f "%%a" 2>nul
  rd /q /s "%%a" 2>nul
)




2008-9-19 17:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fitchson
新手上路





积分 16
发帖 7
注册 2008-9-19
状态 离线
『第 11 楼』:  

HAT大哥:
    還要麻煩你一下。我現在測試的文件是c:\test\2\2.txt,我在a.txt里也輸入了2.txt
執行了bat以後,a.log里記錄的日誌是如下內容及格式:
C:\test\2.txt
C:\test\2\2.txt.C:\test\2.txt
這是怎么回事啊?

2008-9-19 18:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fitchson
新手上路





积分 16
发帖 7
注册 2008-9-19
状态 离线
『第 12 楼』:  

HAT大哥:分享一下,我研究的結果,呵呵:
@echo off
echo =========================================================== >> C:\test\a.log
set DATET=%date% %time%
echo 程序開始運行,時間:%DATET% >> C:\test\a.log
set /p file=<"C:\test\a.txt"
for /r "C:\test" %%a in (%file%) do (
if  exist %%a (
  del /q /f "%%a" 2>nul
  rd /q /s "%%a" 2>nul
echo.%%a >>"C:\test\a.log"
)
)
echo 程序運行結束,時間:%DATET% >> C:\test\a.log
echo =========================================================== >> C:\test\a.log

2008-9-19 19:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: