我很好奇在 Windows cmd 中做这样的事情,它采用具有以下名称的 source.txt 文件:
User1
User2
User3
User4
User5
User6
其次,我创建了目标文件夹,F:\Destination
任务是使用 source.txt 进行迭代,如果该 txt 的文件存在于地址处F:\Destination
,则删除它,如果此类文件不存在,则创建以此名称命名的文件夹。
例如:我有User1.txt
User2.txt
,User3.txt
因此F:\Destination
我需要删除它们并创建文件夹User4
User5
和User6
这是我的脚本,但遗憾的是它什么也没做
for /F "usebackq eol=| delims=" %G in ("source.txt") do if exist
"Destination\%~G" del "Destination\%~G" if not exist "Destination\%~G" md "Destination\%~G"
期待您的建议和解决方案。谢谢!
答案1
我发现一些问题:
G
在批处理文件中引用变量的方法是%%G
,不是%~G
- 您说目标文件夹中的文件名为用户1.txt等等,但你不检查。TXT
- 命令中的选项
for
现在实际上没有任何作用,你可以省略它们。在这种情况下,不要引用source.txt
。help for
有关详细信息,请参阅 - 两行之间的换行没有帮助,或者这只是你问题的格式?如果是这样,请修复它。无论如何,最好稍微格式化一下代码,并使用括号
类似这样的事情应该可以工作:
for /F %%G in (source.txt) do (
if exist "Destination\%%G.txt" del "Destination\%%G.txt"
) else (
if not exist "Destination\%%G" md "Destination\%%G"
)