powershell - 使用相对路径的批处理文件中的 PowerShell
问题描述
我有一个批处理文件,它使用提升的权限启动 PowerShell 脚本并绕过执行策略:
PowerShell -NoProfile -ExecutionPolicy Unrestricted -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Unrestricted -File ""C:\Users\Bob\Desktop\New folder\Server.ps1""' -Verb RunAs}";
这行得通!我希望能够对文件路径使用相对路径。
PowerShell -NoProfile -ExecutionPolicy Unrestricted -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Unrestricted -File "".\Server.ps1""' -Verb RunAs}";
由于某种原因,这失败了。我究竟做错了什么?
解决方案
如果您的 PowerShell 脚本不在 cmd 指向的位置,您将在该目录中搜索相对路径时收到错误消息。如果 PS 脚本位于批处理脚本的同一位置,则可以从批处理中调用 PS 脚本,如下所示:
Powershell "%~dp0Server.ps1"
如果 PowerShell 和批处理脚本位置不同,首先需要在调用 PowerShell 脚本之前更改批处理中的目录,如下所示:
cd /d "C:\Users\Bob\Desktop\New Folder\"
Powershell -NoProfile .\Server.ps1
推荐阅读
- oracle - max(row_num) 给我的结果与 oracle 中的 count(*) 不同。这是我的查询
- r - 进行主成分分析时出错
- jdbc - JMeter - 在 JDBC 请求中检索百万条记录时出现 OutOfMemoryError
- mongodb - 无法下载 mongodb 依赖项
- mysql - 如何从 MySQL 数据库中选择特定记录
- react-native - 反应映射依赖问题
- postgresql - Postgresql 无法启动。重新启动正在重置授予 /var/run/postgresql/ 的权限
- javascript - mobx 中的 @observable 和 @observable.ref 修饰符有什么区别?
- go - 结构嵌入:不能引用未导出的名称 os.fileStat
- android - 在回收站视图中投射异常?