![如何在 BAT 文件中使用 XCOPY 模拟 IF THEN 功能](https://linux22.com/image/1627094/%E5%A6%82%E4%BD%95%E5%9C%A8%20BAT%20%E6%96%87%E4%BB%B6%E4%B8%AD%E4%BD%BF%E7%94%A8%20XCOPY%20%E6%A8%A1%E6%8B%9F%20IF%20THEN%20%E5%8A%9F%E8%83%BD.png)
这是一个相当具体的场景(抱歉)但我会解释我想要实现的目标以及我遇到的困难。
我有一个数据集 (A),目前使用 XCOPY 将其备份到外部 HDD (B),其使用的语法如下(注意:为了便于说明,%1 = 外部 HDD 上的目录名称;%2 = 正在评估备份的目录)
xcopy %2 T:\BACKUP%1 /d/s/e/c/i/r/y/f > c:\backups\backup_log_%1.log
所以基本上我在这里关注的部分是,用通俗的语言来说“如果我当前评估的实时环境中的文件比备份磁带上的文件更新,我需要将该文件 XCOPY 到备份磁带上。
这确实有效,完全没问题,但我需要做的是,我需要引入一个子程序,它(再次用通俗易懂的语言)说:“... 我还需要将该文件 XCOPY 到第二个位置“,我想不出最好的解决办法。
我的直觉是,如果我可以引入基本上是 IF THEN 例程,我就可以轻松地堆叠命令,所以就像......
如果文件在实时环境中比在备份磁带上更新,则将文件复制到备份磁带,将文件复制到此辅助位置,对数据集中的每个文件进行冲洗并重复此操作
我使用的基本逻辑是这样的:-
如果存在{条件,即文件在实时状态比备份磁带上更新}(
COMMAND 1, i.e. XCOPY the file to the backup tape
COMMAND 2, i.e. XCOPY the file to the secondary location
) 别的 (
DO NOTHING
)
所以这是我被困住的加粗部分。XCOPY /d 复制源时间比目标时间更新的文件,但它不是 IF THEN 构造,它只是 XCOPY 函数本身固有的东西。
很抱歉,这似乎是一个模糊而又具体的问题,但你们有什么想法吗?
非常感谢。
!?!?! 掠夺 !?!?!