Batch file 将目录复制到目标(如果尚未存在)

Batch file 将目录复制到目标(如果尚未存在),batch-file,dos,Batch File,Dos,我正在尝试使用批处理文件将目录-C:/user/som复制到C:/admin/仅当目录'som'不在C:/admin/中时。 我的批处理文件是这样的- SET Location= C:\admin IF NOT EXIST "%Location%\som" xcopy "C:/user/som" "C:/admin/som" /S /E 这无法正常工作,即使存在dir-c:/admin/som,它也会询问我是否要覆盖目录中的文件。这里出了什么问题 另外,当我在做xcopy时,它会问我“C:\a

我正在尝试使用批处理文件将目录-C:/user/som复制到C:/admin/仅当目录'som'不在C:/admin/中时。 我的批处理文件是这样的-

SET Location= C:\admin
IF NOT EXIST "%Location%\som" xcopy "C:/user/som" "C:/admin/som" /S /E
这无法正常工作,即使存在dir-c:/admin/som,它也会询问我是否要覆盖目录中的文件。这里出了什么问题


另外,当我在做xcopy时,它会问我“C:\admin\som”是一个文件还是一个目录,并要求我选择F作为文件,选择D作为目录,现在我想自动选择D,可以这样做了吗

SET "Location=C:\admin"
IF NOT EXIST "%Location%\som\." xcopy "C:\user\som" "C:\admin\som" /S /E
这应该行得通

注:可能不是要求,但更好的做法是:

设置“var=string”会将
var
设置为
string
,省略行中的任何尾随空格(如果存在)。包括尾随空间会导致混乱,而且很难发现。在代码中,前导空格包含在指定的值中


请注意,
\
是一个目录分隔符<代码>/是一个开关。转换是零星的。

如果不存在“%Location%\som\”
当我进行xcopy时,它会问我“C:\admin\som”是一个文件还是一个目录,并要求我选择F作为文件,选择D作为目录,现在我希望自动选择D,可以这样做。使用
C:\admin\som\
在目标文件夹或附加开关上带有尾随反斜杠,请参见的文档。