【发布时间】:2019-02-06 17:47:40
【问题描述】:
我有一个批处理脚本,它在运行 W8.1 和 W10 的台式机和笔记本电脑上运行良好已有一段时间了。如果不声明“语法错误”,相同的脚本无法通过最后一行代码
if not exist C:\epic\tablet.txt if not exist C:\epic\laptop.txt (
@set SVPATH="D:\EPIC\Backup\"
) else (
@set SVPATH="C:\EPIC\Backup\"
)
@echo %SVPATH%
if not exist %SVPATH% mkdir %SVPATH%
后面有一堆代码,笔记本电脑和台式机也没有问题,但平板电脑无法通过最后一行。它只是给出以下输出,然后退出脚本:
ECHO is on.
>The syntax of the command is incorrect
>if not exists mkdir
>
看起来它实际上并没有为 SVPATH 设置值,但正如我所说,这在运行 Windows 8.1 和 Windows 10 的台式机和笔记本电脑上都可以正常工作。只有 Surface Pro 4s 有问题,而不是只有一个,这是我们测试过的全部。
【问题讨论】:
-
检查您的逻辑 - 第二个
if有一个else,但第一个没有。您可能需要另一对括号。 -
不,这没有帮助。还要记住,除了 Surface Pro 之外,这在任何地方都可以正常工作。 Microsoft 是否会在平板电脑版本的 Windows 10 上加载不同版本的批处理解释器?
-
我不知道。可以输入
cmd查看版本。这两个 .txt 文件的存在呢? (只是为了确定:您显示的代码是完整的代码还是周围有什么?) -
您不需要在创建目录之前检查它是否存在。只需创建它并将错误重定向到 nul。
md mydir 2>nul
标签: windows batch-file windows-10 surface-pro