【问题标题】:passing a second parameter in a batch file在批处理文件中传递第二个参数
【发布时间】:2018-01-15 23:12:04
【问题描述】:

我有一个文件hello.bat,代码如下:

echo first: %1 and second: %2 > me.txt

我正在尝试使用 powershell 调用它。当我传递第一个参数时,它运行良好:

 start-process hello test

但是,当我尝试像这样传递第二个参数时:

 start-process hello test test2

我收到此错误:

Start-Process:找不到接受参数“test2”的位置参数

【问题讨论】:

    标签: powershell batch-file


    【解决方案1】:

    您可以尝试使用这样的逗号传递参数:

    start-process hello test,test2
    

    start-process hello "test test2"
    

    如果您想了解更多信息,可以阅读文档here

    【讨论】:

    • 效果很好。知道如何用空格传递参数吗?我试过"test 'test 2' "它把第二个参数作为test而不是test 2
    • 是的,你可以这样做start-process hello "test","test 2"
    【解决方案2】:

    我不知道您为什么要从命令行启动命令行,但我认为这应该可以:

    Start-Process -FilePath $env:ComSpec -ArgumentList "/c hello.bat test test2"
    

    你不认为是时候用 Powershell 替换 cmd 了吗?

    您也可以更改您的 bat 文件:

    echo %1 > me.txt
    echo %2 >> me.txt
    

    【讨论】:

    • 我确实先尝试了 powershell。我创建了 ps1 文件并尝试以几种方式运行它们,但它一直给我“无法识别”的错误。该命令最终至少与一个参数一起使用
    • 顺便说一下您的代码不起作用。没有错误。一个窗口弹出并消失。 txt文件没有变化
    • 所以你可能会开始你的研究多一点“底部”。你实际上想达到什么目标?
    • ... 在我的回答中添加了适当的 bat 文件。它对我来说是这样的。
    • 名字hallo.bat hello.bat 有问题吗?
    猜你喜欢
    • 2015-02-26
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    相关资源
    最近更新 更多