批处理脚本:如何在调用中设置第二个参数?
for /f %%j in ('dir /b *.txt') do (
findstr /m /i "yoyoyo" %%j
if !ERRORLEVEL! == 0 (
set post=yoyoyo
CALL postset.bat "yoyoyo" %%jj
)
)
我正在尝试将 2 个参数传递给 CALL 第一个正在经历,但第二个却没有。
编辑我真正的问题是另一批,没有使用%1和%2,我的错!
for /f %%j in ('dir /b *.txt') do (
findstr /m /i "yoyoyo" %%j
if !ERRORLEVEL! == 0 (
set post=yoyoyo
CALL postset.bat "yoyoyo" %%jj
)
)
I'm trying to pass 2 arguments to a CALL
the first is going through but not the second.
edit my real problem was with the other batch, didn't use %1 and %2, my bad!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
该代码对我来说效果很好。当将 2 个或更多参数传递给 postset.bat 时,我可以从 postset.bat 打印出 %1 到 %9(如果设置)。
The code works well for me. When passing 2 or more parametes to the postset.bat I am able to print out %1 till %9 (if set) from postset.bat.
因为您没有传递变量 %%j 而是 %%jj.......
因为这不存在,所以空值(什么都没有)将被传递到 bat 文件。
更新:
由于变量扩展的工作方式,ERRORLEVEL 测试无法按预期工作,因此根本不会调用 bat 文件。
请改用
if errorlevel 1
。Because you are not passing the variable %%j but %%jj.......
As this doesn't exist a null-value (nothing) will be passed to the bat-file.
Update:
The ERRORLEVEL test doesn't work as intended due to the way variable expansion works so the bat-file is never called at all.
Use
if errorlevel 1
in stead.