如何使用批处理文件

时间:2016-03-15 10:39:00

标签: batch-file

我创建了一个批处理文件。在此我存储了:  我的查询是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

2 个答案:

答案 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