给定具有名称的文本文件,如果文件夹中有具有此名称的文件 - 删除它,否则使用此名称创建文件夹

给定具有名称的文本文件,如果文件夹中有具有此名称的文件 - 删除它,否则使用此名称创建文件夹

我很好奇在 Windows cmd 中做这样的事情,它采用具有以下名称的 source.txt 文件:

User1
User2
User3
User4
User5
User6

其次,我创建了目标文件夹,F:\Destination任务是使用 source.txt 进行迭代,如果该 txt 的文件存在于地址处F:\Destination,则删除它,如果此类文件不存在,则创建以此名称命名的文件夹。

例如:我有User1.txt User2.txtUser3.txt因此F:\Destination我需要删除它们并创建文件夹User4 User5User6

这是我的脚本,但遗憾的是它什么也没做

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.txthelp 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"
)

相关内容