【问题标题】:batch to delete files that have their paths in a txt file批量删除路径在 txt 文件中的文件
【发布时间】:2013-01-13 19:08:58
【问题描述】:

我需要一个从 LAN 中删除文件的批处理,文件的所有路径都保存在一个 txt 文件中。不知道批处理将如何“读取”路径然后使用DEL 命令删除这些文件。 到目前为止有效的线路是: del "path\*.txt" - 用于删除某个文件夹中的所有 txt(path 是实际行,如 c:\folder\folder\*.txt),但我需要更多路径。 然后我用 psexec.exe 推送了批处理(用于 LAN 删除)

我猜这是 2-3 行代码,但我是批处理和脚本的新手,请有人帮忙!提前致谢

【问题讨论】:

    标签: batch-file


    【解决方案1】:

    您可以使用FOR /F 命令来处理输入文件中的每一行。这是一个答案:How do you loop through each line in a text file using a windows batch file? 这对我有用(文件名周围的括号是必要的):

    for /F "tokens=*" %%A in (myfile.txt) do del "%%A"
    

    myfile.txt 看起来像这样:

    a.txt
    b.txt
    a b c.txt
    

    【讨论】:

    • 所以包含路径的文本文件看起来像(例如):c:\path\file1.pdf;第二行是 c:\path\file2.txt,依此类推。 for /f 会循环遍历每个文件,那么我应该将del 命令放在哪里? (我应该怎么写?)@BubullC
    • 类似这样的:for /F "tokens=*" %%A in (myfile.txt) do [process] %%A ? del 命令在哪里 [process]? @BubullC
    • 我在回答中包含了一个示例。
    • 谢谢!有效!!!想知道:如果某个文件当前正在被修改(有人使用它或者只是在删除时打开),用户关闭它后批量删除它吗?再次感谢您的及时回答@BubullC
    • 谢谢!有效!!!如果当前正在修改某个文件(有人在使用它或在删除时刚刚打开),则在用户关闭它后批量将其删除!!!再次感谢您的及时回答我可以在用户关闭文件后批量删除文件吗? @BubullC
    【解决方案2】:
    del /s *.txt
    

    /s 表示 - 从所有子文件夹中删除..

    或遍历目录:

    for /d %i in (*.*) do del %i\*.exe
    

    !!!)如果您的代码在批处理文件中,您应该使用 % 转义 %

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-19
      • 2023-01-11
      • 1970-01-01
      • 2023-04-06
      • 2019-08-18
      • 2013-11-20
      • 1970-01-01
      • 2018-03-18
      相关资源
      最近更新 更多