检查文件是否存在于两个路径中
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"
)
我需要检查文件是否存在于两个路径中。 例如(考虑 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"
)