0

如果相关文件或文件夹路径/名称不包含空格,则我尝试按保存到文本文件的名称和路径条目删除文件,批处理执行得很好,但是如果文件名包含空格,则它拒绝读取第一个空格之外的内容。这与引号无关。

有人可以帮忙吗?

for /f %%1 in (C:\BLACKLIST.txt) do rd /s /q %%1

也不起作用的是:

for /f %%1 in (C:\BLACKLIST.txt) do rd /s /q "%%1"
4

1 回答 1

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"
于 2013-01-02T16:19:59.233 回答