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

时间:2015-02-03 11:17:10

标签: batch-file jenkins copy continuous-integration

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

a.txt文件存在于我需要执行复制操作的Dir中。

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

谢谢, 阿伦

2 个答案:

答案 0 :(得分:0)

如果要确保两个文件相同,请使用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

答案 1 :(得分:0)

假设您在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"
   )