Batch file 如何比较批处理脚本中两个命令的输出
我有一个批处理脚本来为我的Subversion备份运行hotcopy。像这样:Batch file 如何比较批处理脚本中两个命令的输出,batch-file,Batch File,我有一个批处理脚本来为我的Subversion备份运行hotcopy。像这样: SET REPOS=D:\Repos SET BACKUP=C:\Backup FOR /f %%s IN('DIR /b /a:d %REPOS%') DO ( svnadmin hotcopy %REPOS%\%%s %BACKUP%\%%s ) 我想添加一个条件检查,以便仅在存储库发生更改时才运行hotcopy。类似于以下伪代码: if (svnlook youngest repo1 != svnloo
SET REPOS=D:\Repos
SET BACKUP=C:\Backup
FOR /f %%s IN('DIR /b /a:d %REPOS%') DO (
svnadmin hotcopy %REPOS%\%%s %BACKUP%\%%s
)
我想添加一个条件检查,以便仅在存储库发生更改时才运行hotcopy。类似于以下伪代码:
if (svnlook youngest repo1 != svnlook youngest backup1) {
//do hotcopy as above
}
如何在批处理脚本中实现这一点?例如,如何比较批处理脚本中两个命令的输出?未测试(我没有执行此操作的环境),但这是框架
@echo off
setlocal enableextensions enabledelayedexpansion
set "REPOS=D:\Repos"
set "BACKUP=C:\Backup"
for /d %%r in ("%REPOS%") do (
set "sourceVersion="
for /f %%a in ('svnlook youngest "%%~fr"') do set "sourceVersion=%%a"
set "targetVersion="
for /f %%a in ('svnlook youngest "%BACKUP%\%%~nxr"') do set "targetVersion=%%a"
if not "!sourceVersion!"=="!targetVersion!" (
svnadmin hotcopy "%%~fr" "%BACKUP%\%%~nxr"
)
)