0

我正在创建一个批处理文件来自动化一些备份。我已经退出 DOS / 批处理游戏好几年了,我已经很生疏了。我确定我的问题很小,但我似乎无法让我的 if 语句做任何事情。以下是违规行:

IF EXIST %dirname% (echo Directory already exists) ELSE (mkdir %dirname%)
::dirname in this particular case is: Backup 2013-06-06
::The directory does exist, so the echo statement should execute.

即使满足条件,我的 echo 语句也不会触发。在命令提示符中键入此行时可以正常工作,但不能从 .bat 中键入。有谁知道是什么问题?

谢谢!

4

1 回答 1

2

您需要“引用名称”因为它包含一个空格

IF EXIST "%dirname%" (echo Directory already exists) ELSE (mkdir "%dirname%")

虽然

mkdir "%dirname%" 2>nul

也可以工作 - 它只是抑制STDERR(device 2)上的错误消息输出

于 2013-06-06T17:47:37.413 回答