相关疑难解决方法(0)

获取Windows批处理脚本(.bat)中传递的参数列表

我想找到一个与Bash相对应的Windows批处理副本,$@其中包含传递给脚本的所有参数的列表.

或者我不得不打扰shift

windows batch-file

385
推荐指数
7
解决办法
35万
查看次数

将传递的参数重定向到Windows批处理文件

我想从Windows批处理文件中调用一个jar文件.一个要求是能够将所有批处理文件参数原样传递给jar文件调用.例如,

必需的命令行:

foo.bat --flag1=x --flag2=y --flag3=z
Run Code Online (Sandbox Code Playgroud)

批处理文件foo.bat应该调用foo.jar如下:

java -jar foo.jar --flag1=x --flag2=y --flag3=z
Run Code Online (Sandbox Code Playgroud)

如何使批处理文件执行此操作?
我可以用%做一些批量变量魔术来做到这一点,但是有更简单的方法吗?

windows arguments batch-file

95
推荐指数
1
解决办法
4万
查看次数

将所有批处理文件参数转发到内部命令

为了我在Windows中的安慰,我想准备一些像Unix一样启动的PHP工具.

FE: composer create-project symfony/framework-standard-edition path/

不: php composer.phar create-project symfony/framework-standard-edition path/

我在系统路径目录中创建了composer.bat文件:

php C:\path\to\composer\composer.phar
Run Code Online (Sandbox Code Playgroud)

它的作用仅仅是用法.但是如何将所有参数和标志转发到命令里?

windows automation batch-file

24
推荐指数
2
解决办法
1万
查看次数

为什么在从PowerShell调用批处理文件时,插入符号会消失?

这是我的args.bat档案:

@echo off
python -c "import sys; print(sys.argv)" %*
Run Code Online (Sandbox Code Playgroud)

我在这里调用python因为我确切地知道如何解释输出,而不是猜测字符串中的引号

如果我从cmd调用它会发生什么:

>.\args.bat ^^^^^
More?
More?
['-c', '^']
>.\args.bat "^^^^^"
['-c', '^^^^^']
Run Code Online (Sandbox Code Playgroud)

但这是powershell的作用:

PS> .\args.bat ^^^^^
['-c', '^']
PS> .\args.bat "^^^^^"
['-c', '^']
PS> .\args.bat '^^^^^'
['-c', '^']
PS> .\args.bat "'^^^^^'"
['-c', '^']
PS> .\args.bat '"^^^^^"'
['-c', '^^^^^']
Run Code Online (Sandbox Code Playgroud)

为什么在从PowerShell调用批处理文件时必须加倍引用该参数?


从powershell调用python不存在同样的问题:

PS> python -c "import sys; print(sys.argv)" "^^^^^"
['-c', '^^^^^']
PS> python -c "import sys; print(sys.argv)" '^^^^^'
['-c', '^^^^^']
PS> python -c "import sys; print(sys.argv)" ^^^^^
['-c', '^^^^^']
Run Code Online (Sandbox Code Playgroud)

但是从PowerShell调用python批处理时仍然存在!

PS> …
Run Code Online (Sandbox Code Playgroud)

powershell escaping batch-file

2
推荐指数
1
解决办法
81
查看次数