如何获得从批处理命令运行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:好的,我测试了它并且它按预期工作。