有没有办法遍历文件内容并批量使用它?
Is there a way to loop through a files contents and use it in batch?
我正在处理一个批处理文件中的项目,需要遍历文件的内容并打印出内容。
我设置了一个 for /f
循环来遍历文件的内容,但它不起作用。
代码
cd C:\Users\(my name was here)
for /f %%G in (List.txt) (
del /F /S %%G
echo %errorlevel%
pause
)
我已经用谷歌搜索了大约一个小时,但找不到任何对我有用的东西。我希望你们能告诉我我的代码做错了什么。
如果您要回答,请附上对代码的解释,以便我了解我做错了什么。
for /F
循环的 cmd
中的默认 delim
迭代是空白。您的代码将拆分并分配第一个 word/number/line 直到第一个空格。
您需要告诉 for /f
循环不要使用任何分隔符。另外 usebackq
以便您双引号您的文件,因为它也可以是带有空格的文件的完整路径,即:"C:\My Documents\Old Files\list.txt"
@echo off
for /f "usebackq delims=" %%i in ("List.txt") do del /F /S "%%~i"
然后,del
不会设置 errorlevel
,您将始终返回 0
。如果你真的想检查结果,重定向stderr
到stdout
并使用findstr
判断是否删除成功。
我正在处理一个批处理文件中的项目,需要遍历文件的内容并打印出内容。
我设置了一个 for /f
循环来遍历文件的内容,但它不起作用。
代码
cd C:\Users\(my name was here)
for /f %%G in (List.txt) (
del /F /S %%G
echo %errorlevel%
pause
)
我已经用谷歌搜索了大约一个小时,但找不到任何对我有用的东西。我希望你们能告诉我我的代码做错了什么。
如果您要回答,请附上对代码的解释,以便我了解我做错了什么。
for /F
循环的 cmd
中的默认 delim
迭代是空白。您的代码将拆分并分配第一个 word/number/line 直到第一个空格。
您需要告诉 for /f
循环不要使用任何分隔符。另外 usebackq
以便您双引号您的文件,因为它也可以是带有空格的文件的完整路径,即:"C:\My Documents\Old Files\list.txt"
@echo off
for /f "usebackq delims=" %%i in ("List.txt") do del /F /S "%%~i"
然后,del
不会设置 errorlevel
,您将始终返回 0
。如果你真的想检查结果,重定向stderr
到stdout
并使用findstr
判断是否删除成功。