我试图从PowerShell 3 ISE中运行它:
&"C:\inetpub\htpasswd.exe -bc C:\inetpub\wwwroot\xyz\password\passMD5.txt sm88555 sm88999"
但得到此错误:
不会被识别为cmdlet,函数,脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。
我认为PowerShell会在第一个空格后停止正确评估吗?
答案 0 :(得分:2)
iex
- Invoke-Expression
我在&
$htPassword = "C:\inetpub\htpasswd.exe"
$htParams = "C:\inetpub\wwwroot\xyz\password\passMD5.txt sm88555 sm88999"
Invoke-Expression -Command "$htPassword $htParams"
myeval很好地处理了joel-b-fant
答案 1 :(得分:2)
调用操作符不解释整个命令行/表达式。这就是Invoke-Expression
的用途。如果要使用调用运算符,请将参数与命令(以及彼此)分开:
& "C:\inetpub\htpasswd.exe" -bc "C:\inetpub\wwwroot\xyz\password\passMD5.txt" "sm88555" "sm88999"