我创建了一个批处理文件。在此我存储了:
我的查询是o / p到名为List.txt的文件中它包含多个文件。
我想删除List.txt
中包含的这些文件。
我正在编写代码:
set file=E:\AppData\List.txt
findstr /s /p /x /m /c:"test" *.txt> %file%
for /F "tokens=* delims=" %%A in (%file%) Do
(
echo %%A
set name = "E:\AppData\%%A"
del %name%
)
pause
我无法访问%name%值。 如何删除这些文件?
我的List.txt
包含4个文件:
数据\应用1 \ 1.txt
数据\应用1 \ 4.txt
数据\应用2 \ 1.txt
数据\应用2 \ 4.txt
Data \ Application 3 \ 1.txt
修改
我制作了完整的批处理文件,当我运行它时出现错误
The syntax of the command is incorrect.
E:\AppData\Data>for /F "tokens=* delims=" %A in (E:\AppData\List.txt) Do
我在这里分享我的批处理脚本,请有人找到我的错误。
@echo off
set file=E:\AppData\List.txt
findstr /s /p /x /m /c:"test" *.txt> %file%
:END
echo Files are Safe not deleted.
call "E:\batch files\linecount.bat"
SET /P "ANSWER=Click Y to delete all Files or N to stop (Y/N)"
for /F "tokens=* delims=" %%A in (%file%) Do
(
echo %%A
del "E:\AppData\%%A"
)
echo Files are deleted successfully.
pause
答案 0 :(得分:1)
试试这个
@echo off
for /f "tokens=*" %%a in (List.txt) do (
del /F /Q %%a
)
pause
它的工作。
答案 1 :(得分:0)
您需要delayed expansion或稍微更改一下代码:
set file=E:\AppData\List.txt
findstr /s /p /x /m /c:"test" *.txt> %file%
for /F "tokens=* delims=" %%A in (%file%) Do (
echo %%A
del "E:\AppData\%%A"
)
pause