Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File DOS批处理:如何比较两个单独文件夹中存在的两个同名文件?_File_Batch File_Dos - Fatal编程技术网

File DOS批处理:如何比较两个单独文件夹中存在的两个同名文件?

File DOS批处理:如何比较两个单独文件夹中存在的两个同名文件?,file,batch-file,dos,File,Batch File,Dos,我想检查一个文件夹中的所有文件,看看它们是否存在于另一个文件夹中。当在第一个文件夹中发现一个文件而在第二个文件夹中不存在时,我希望删除该文件 这可能吗?根据需要编辑路径信息(或输入正确的批处理参数%1%2),并在确认得到正确结果后删除DEL之前的回显 @echo off setlocal set "dir1=." set "dir2=d1" set tempFile="%temp%\exclude%random%.txt" dir /b "%dir2%" >%tempFile% for /

我想检查一个文件夹中的所有文件,看看它们是否存在于另一个文件夹中。当在第一个文件夹中发现一个文件而在第二个文件夹中不存在时,我希望删除该文件


这可能吗?

根据需要编辑路径信息(或输入正确的批处理参数%1%2),并在确认得到正确结果后删除DEL之前的回显

@echo off
setlocal
set "dir1=."
set "dir2=d1"
set tempFile="%temp%\exclude%random%.txt"
dir /b "%dir2%" >%tempFile%
for /f "eol=: delims=" %%F in ('dir /b /a-d "%dir1%" ^| findstr /vixg:%tempFile%') do echo del "%dir1%\%%F"
del %tempFile%

注意-此解决方案只是比较名称。如果两个完全不同的文件具有相同的名称,则它们将被视为相同的文件。

您想仅仅通过名称、名称+大小+时间戳或md5sum/二进制比较来比较这些文件吗?答案需要被询问者接受。我尝试了以下方法:setlocal set“dir1=“%USERPROFILE%\Documents”set“dir2”=“S:\My Backup\My Documents 01\My Documents”set tempFile=“%temp%\exclude%random%.txt“dir/b”%dir2%>%tempFile%for/f”eol=:delims=“%%f in('dir/b/a-d”%dir1%“^ findstr/vixg:%tempFile%”删除“%dir2%\%f”删除%tempFile%@stevover-代码试图从错误的目录中删除(%dir2%).所有问题现已修复,可从%1%正确删除。