像批处理命令一样运行 powershell 脚本

像批处理命令一样运行 powershell 脚本

如何获得从批处理命令运行powershell脚本的效果。

例如,我在 PATH 上有一些针对我的用户的批处理命令,我使用这些命令使我的工作更容易使用命令行和 git。

但是我还没有养成学习 PowerShell 的习惯,所以如果可以的话我不喜欢使用 PowerShell。

然而随着内容的迁移,越来越多的脚本似乎是 powershell 脚本。

如何创建一个“快捷方式”批处理文件,将传递给它的所有参数转发到同名的 powershell 脚本?

例如我有一个名为 stree.ps1 的 Powershell 脚本

Start-Process "C:\Users\ryan.leach\AppData\Local\SourceTree\SourceTree.exe" -ArgumentList "-f $((Resolve-Path $args[0]).toString())"

这将使用与传入路径相对应的参数启动 SourceTree。

如何创建一个 stree.bat 来调用 stree.ps1 并将所有参数转发到 stree.ps1,而不必在对 stree.ps1 进行微小更改时更新 stree.bat?

答案1

如果你stree.ps1在 PowerShell 中像这样运行:

stree some_argument

那么你的stree.bat看起来应该是这样的:

PowerShell -Command "stree some_argument"

查看文档更多细节。

编辑:我还没有测试过,但我认为你会以与任何其他批处理脚本相同的方式传递参数:

PowerShell -Command "stree %*"

然后运行:

stree.bat some_argument some_other_argument

编辑 2:好的,我测试了它并且它按预期工作。

相关内容