powershell - 将参数从批处理传递到PowerShell
问题描述
我有一个批处理文件,我从中运行一个 powershell 脚本。我想将参数传递给这个 powershell 脚本。我尝试了很多不同的东西:
Set MachineName=Computer2
%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -Command "%~dp0%\Rename.ps1" -MachineName %MachineName%
并用-File
而不是-Command
Set MachineName=Computer2
%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -File"%~dp0%\Rename.ps1" -MachineName %MachineName%
并且没有命名参数-MachineName
Set MachineName=Computer2
%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -File"%~dp0%\Rename.ps1" %MachineName%
我的 Powershell 脚本 (Rename.ps1) 以:
Param($MachineName)
我尝试过使用双引号、单引号、不带引号、使用 -File 使用 -Command、使用命名参数(如-MachineName
)且不使用命名参数,但每次都会出现此错误:
处理 - 文件“\10.193.40.56\c$\systems\cph_wsconfigtool\src\scripts\MachineName”失败,因为该文件没有“.ps1”扩展名。请指定一个有效的 Windows PowerShell 脚本文件名,然后重试。
但是,如果我删除参数,它会非常好。那么我做错了什么?我已经阅读了我在互联网上可以找到的所有关于它的帖子,他们都说这是这样做的方法。
解决方案
-Command "%~dp0\Rename.ps1"
代替
-Command "%~dp0%\Rename.ps1"
(答案来自对原始问题的评论。)
推荐阅读
- google-bigquery - 从简单的 STRUCT 数据类型中提取值
- r - R mac catalina tabulizer 失败,出现 java 运行时缺失错误,但已安装 java
- arrays - 处理结构内的可变字符串数组 (C)
- python - 如何从欧拉角计算“旋转流动性”的量度?
- python - 使用 numpy.polynomial.legendre 时,如何获得将输入转换为勒让德多项式的参数的函数?
- ruby-on-rails - 将枚举与管理集成的正确方法是什么?
- angular - 无法在单元格渲染器中使用 ngIf
- python - 如何在不使用 Inflect 或 NLTK 的情况下确定 Python 中的多个单词?
- python - Matplotlib 升级后出现错误:“ValueError: s must be a scalar, or the size as x and y”
- android - task.getResult().isEmpty() 是指文档不可用,并且 task.getResult().exists() 是指文档在 Firestore 中可用吗?