我想%*
从批处理脚本转发到 Powershell 脚本,这已经可以正常工作了。唯一的问题是我无法干净地转发带有空格的参数。
示例.bat..
@echo off
set cwd=%~dp0
set argv=%*
powershell -NoProfile -ExecutionPolicy Bypass -Command "& '%cwd%Example.ps1' %argv%"
示例.ps1..
Param(
$Message
)
If (!$Message)
{
$Message = "Hello!!!"
}
Write-Host $Message
我可以做得./Example.bat Oh
很好,打印出来Oh
。但是,./Example.bat "Oh no"
也只能打印出来Oh
。./Example "'Oh no'"
虽然可以工作,但并不干净,因为脚本的使用不再相同,这意味着对它的任何使用都会变得紧密耦合,而这是我不想要的。