批处理脚本:如何在调用中设置第二个参数?

发布于 2024-12-09 23:00:15 字数 277 浏览 0 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

顾忌 2024-12-16 23:00:15

该代码对我来说效果很好。当将 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.

东京女 2024-12-16 23:00:15

因为您没有传递变量 %%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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文