batch-file - 批量跳过可选参数
问题描述
我运行一个批处理脚本,我想在其中使用第三个输入作为可选输入。我试过
some code...
If Not "%~3"=="" (
echo hello world >> %3
)
some code...
只要我实际上传递了一些第三个参数,脚本就可以正常工作,但是一旦我跳过它就会中断。不幸的是,我不知道批量错误处理。我什至不能说为什么程序会中断。
你能帮我处理错误或解决方案吗?
最好的,彼得
解决方案
所以基本上这是找到正确答案的关键信息:
Windows 命令处理器在执行命令 IF 之前处理以 match 开头(并以 match 结尾)的整个命令块。因此,在没有将第三个参数字符串传递给批处理文件的情况下,命令块必须在语法上完全正确。
最简单的存档方法是:
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)
)
推荐阅读
- r - 我如何模拟 ma 时间序列模型,残差是使用 R 的毒药分布?
- node.js - 我是否必须在 axios 配置中声明数据
- ti-basic - 在它基本的情况下,我如何将一个添加到变量中?
- java - 动态更新 JTable(s)
- node.js - ReactJs、Express 和 MongoDB 应用程序的 POST/PUT/DELETE 请求失败
- r - R中的集成测试
- docker - 有没有办法在 Docketfile 中动态传递 sqlhost 名称
- python - 将python中文本文件中字符串的所有首字母大写
- python - 仅当使用 Chainpoint cli 工具命令时,Python 的子进程模块才会在 self.stdout.read() 上的 PyCharm 中挂起
- python - 在二维数组python中搜索字符串向右或向下移动