|
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
状态 离线
|
|
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 |
|