Batch file 如何使用cmd更正从var复制文件?

Batch file 如何使用cmd更正从var复制文件?,batch-file,cmd,Batch File,Cmd,我正在尝试备份。bat,我的代码: set /p SourceCatalog="Input Source Catalog: " set /p BackupCatalog="Input Backup Catalog: " set /p FileName="Input a file name: " cd "%BackupCatalog%" if not exist FileName ( copy

我正在尝试备份。bat,我的代码:

set /p SourceCatalog="Input Source Catalog: "
set /p BackupCatalog="Input Backup Catalog: "
set /p FileName="Input a file name: "
cd "%BackupCatalog%"
    if not exist FileName (
        copy "%SourceCatalog%"%FileName% "%BackupCatalog%"
    )

在这一行-
复制“%SourceCatalog%”文件名%%BackupCatalog%”
我有一个错误,它复制源文件夹中的每个文件。我试着像
“%SourceCatalog%”“\%FileName%”
“%SourceCatalog%”“\%FileName%”“
那样做,但它仍然不能正常工作,所以,我应该怎么做才能使用变量复制单个文件?

如果不存在“%FileName%”,它应该是
,如果不存在,它应该是
。但是,我认为更改目录没有任何意义,因此只要
如果存在“%SourceCatalog%\%FileName%”如果不存在“%BackupCatalog%\%FileName%”系统根目录%\System32\xcopy.exe“%SourceCatalog%\%FileName%”“%BackupCatalog%\”/KRHY
就足够了。@Compo,指定
“%\uuuuuu appdir\uuuuuuuuu%xcopy.exe”是否更好?
?我更喜欢这样做@lit,因为与普通变量不同,它的值不能被修改,不管是意外修改还是其他修改。然而,它并没有文档记录,我也很少有报告说它在某些系统上不起作用。我的脚本使用它,但对于为生产环境设计的脚本,我通常会首先检查它的有效性,如果失败,则将其设置为“%SystemRoot%\System32\”。