您好我需要使用powershell运行变量进程。 以下代码不起作用,因为出于某种原因,Powershell不会扩展变量:
$ pip show tensorflow
Name: tensorflow
Version: 1.5.0
Summary: TensorFlow helps the tensors flow
但是我收到了这个错误
Start-Process:由于错误导致无法运行此命令:系统找不到指定的文件
+ Start-Process $ exe -Verb runas;
答案 0 :(得分:1)
$var
- 变量在您声明$exe
- 字符串时展开,只要您使用问题中的双引号即可。但单引号$exe = 'c:\$var.exe'
不起作用,因为单引号构成文字字符串。
输出$exe
以验证路径。您的$var
值可能不对。
错误只是说它运行了哪一行,而不是它实际使用的路径,除了它存储在$exe
- 变量中。
$var = "nonexistingfile"
$exe = "c:\$var.exe"
$exe
c:\nonexistingfile.exe
Start-Process $exe
Start-Process : This command cannot be run due to the error: The system cannot find the file specified.
At line:1 char:1
+ Start-Process $exe
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Start-Process], InvalidOperationException
+ FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand
但是使用有效路径:
$var = "windows\system32\notepad"
$exe = "c:\$var.exe"
$exe
c:\windows\system32\notepad.exe
Start-Process $exe
#Starts notepad
答案 1 :(得分:-1)
我喜欢使用数组和-join
组合字符串:
$exe = 'C:\',$var,'.exe' -join ''
接下来我将测试可执行文件是否存在并运行它或写错误
if(Test-Path -LiteralPath $exe) {
Start-Process $exe -Verb runas
} else {
Write-Error "the executable could not be found"
}