C:\code.ps1
,比如说A,B,C。
code.ps1
如下所示
$path =Read“提供路径名”$AbsolutePath = "$path\somefile“code.ps1
时,它在进一步执行之前要求用户输入某个位置。code.ps1
时,它要求用户输入一个位置。我们如何解决这个问题,以便在机器D上运行这个脚本只需要用户输入一次,而不管没有。code.ps1
在那里的机械设备。
发布于 2016-09-12 09:13:17
如果在所有远程主机上的位置相同,您应该能够通过using:
范围分类器在scriptblock中获取路径。
$Location = Read-Host -Prompt "Input location for the installer"
$Machine = @('A','B')
Invoke-Command -Computer $Machine -ScriptBlock {& "$using:Location\install.msi"}
您还可以将路径作为参数传递到scriptblock:
$Location = Read-Host -Prompt "Input location for the installer"
$Machine = @('A','B')
Invoke-Command -Computer $Machine -ScriptBlock {
Param($Installer)
& "$Installer"
} -ArgumentList "$Location\install.msi"
无论哪种方式,都要将路径放在双引号中,以处理其中的空格,并使用call运算符执行命令字符串。
如果路径因机器而异,则需要将命令作为每台机器的单独作业调用。远程机器上的提示无法工作,因为被调用的命令没有在交互式会话中运行。
https://stackoverflow.com/questions/39446584
复制相似问题