如果相关文件或文件夹路径/名称不包含空格,则我尝试按保存到文本文件的名称和路径条目删除文件,批处理执行得很好,但是如果文件名包含空格,则它拒绝读取第一个空格之外的内容。这与引号无关。
有人可以帮忙吗?
for /f %%1 in (C:\BLACKLIST.txt) do rd /s /q %%1
也不起作用的是:
for /f %%1 in (C:\BLACKLIST.txt) do rd /s /q "%%1"
如果相关文件或文件夹路径/名称不包含空格,则我尝试按保存到文本文件的名称和路径条目删除文件,批处理执行得很好,但是如果文件名包含空格,则它拒绝读取第一个空格之外的内容。这与引号无关。
有人可以帮忙吗?
for /f %%1 in (C:\BLACKLIST.txt) do rd /s /q %%1
也不起作用的是:
for /f %%1 in (C:\BLACKLIST.txt) do rd /s /q "%%1"
您需要添加令牌以使其读取整行
for /f "tokens=*" %%1 in (C:\BLACKLIST.txt) do rd /s /q "%%1"
循环读取行并根据for /f
某些分隔符或分隔符将它们拆分为标记。默认情况下,分隔符为<space>
and <tab>
,如果未指定,则仅读取第一个标记。该tokens
选项允许您覆盖默认值并指定您想要的令牌。在您的情况下,您想要所有这些,这就是您需要放置的原因*
(一个*
代表“所有令牌”)。
或者,您可以通过重置delims
选项来指定“无分隔符”,如下所示:
for /f "delims=" %%1 in (C:\BLACKLIST.txt) do rd /s /q "%%1"