我运行了一个批处理程序,我想使用第三个输入作为可选输入。我尝试了
some code...
If Not "%~3"=="" (
echo hello world >> %3
)
some code...
只要我实际传递一些第三个参数,skript就能正常工作,但一旦我跳过它就会中断。不幸的是,我不知道批处理中的错误处理。我甚至不能说为什么程序会中断。
你能帮我解决错误处理或解决方案吗?
最好的,Peter
所以基本上这是找到正确答案的关键信息。
Windows命令处理器在执行IF命令之前 会先处理整个命令块,以(和匹配)为起点,然后再执行。所以在没有向批处理文件传递第三个参数字符串的情况下,命令块必须还是完全语法正确的。
最简单的归档方式就是。
If Not "%~3" == "" ( echo hello world >> "%~3" )
因为在%~3周围的额外的双绿叶可以保证语法的正确性。
更安全的做法是使用:
If Not "%~3" == "" (
If Exist "%~3" ((Echo hello world) 1>> "%~3")
Else ((Echo hello world) 1> "%~3" 2> NUL)
)