检查文件是否存在于两个路径中

check if the file exists in two path

我需要检查文件是否存在于两个路径中。 例如(考虑 C:\D\a.txt && D:\E\a.txt).

a.txt两个目录都存在文件需要进行复制操作

@echo OFF 
IF EXIST C:\D\a.txt == D:\E\a.txt
copy C:\D\a.txt F:\test\a.txt

谢谢, 阿伦

如果要保证两个文件相等,使用FC:

FC C:\D\a.txt D:\E\a.txt
IF %ERRORLEVEL%==0 COPY C:\D\a.txt\ F:\test\filename.txt

FC 表示 FileCompare 并将 %ERRORLEVEL% 设置为

  • 0 如果文件相等
  • 1 如果它们不同
  • 2 如果其中一个文件不存在或不可读
  • -1 如果你有语法错误。

这意味着您不需要使用 IF EXIST 检查文件是否存在。如果不是这种情况,FC 会将 %ERRORLEVEL% 设置为 2,并且不会复制文件。如果两个文件都存在且相等,它只会复制文件。

有关 FC 的更多信息,请查看 http://ss64.com/nt/fc.html

如果您只想确保这两个文件都存在,请使用:

IF EXIST C:\D\a.txt IF EXIST D:\E\a.txt COPY C:\D\a.txt\ F:\test\filename.txt

假设您在 dos 上执行此操作

if exist {insert file name here} (
    rem file exists
) else (
    rem file doesn't exist
)

这样的东西可能有用

if exist C:\D\a.txt (
   set fileA=true
   )
if exist D:\E\a.txt (
   set fileB=true
   )
if %fileB% EQU %FileA% (
   Echo "The two file exist"
   ) else ( 
   Echo "Do something"
   )