windows - 用于比较两个文件列表并删除两个列表中显示的文件的命令行

标签 windows batch-file command-line command-line-arguments

在 Windows 7 中,我有一个包含以下文件的文件夹 1:

a.txt
b.txt
c.txt

还有另一个文件夹 2 包含以下文件:

b.txt
c.txt
d.txt

我想使用命令行从文件夹 2 中删除文件 b.txtc.txt,它们出现在两个列表中。 我了解如何使用 for/f 生成文件列表。我不知道如何在 for/f 中执行另一个循环以便删除文件。

最佳答案

我不确定您的意思是要从两个 文件夹中删除文件 b.txt 和 c.txt,还是只删除一个。以下批处理文件将从 folder2 中删除它们。

@echo off
setlocal
set folder1=name_of_your_first_folder
set folder2=name_of_your_second_folder
for %%f in (%folder1%\*) do (
    if exist %folder2%\%%~nxf echo del %folder2%\%%~nxf
)
rem remove echo from above once satisfied it will do the right thing

关于windows - 用于比较两个文件列表并删除两个列表中显示的文件的命令行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37890333/

相关文章:

python - 操作系统错误 : [Errno 22] Invalid argument in subprocess

batch-file - 如何通过批处理文件在随机时间安排任务?

windows - 来自计划任务的批处理文件返回代码 2147942401

C++ 如何在进程之间传递命令行参数?

Java 从命令行调用列表文件

java - sbt 相当于 maven exec 插件

windows - 关于 JvPatchFile 组件?

ruby-on-rails - Bundler/eventmachine 安装问题 (Rails/Windows)

c++ - 我如何在 linux 中获取程序的版本

regex - 使用 DOS/批处理以随机长度拆分字符串