我尝试使用PowerShell在远程计算机上的cmd窗口中启动批处理文件。
这是我的ps1脚本。
function Run-BatchFile
{
param($computer = "mycomputer")
$batfilename = "mybatch.bat"
Invoke-Command -ComputerName $computer -ScriptBlock {param($batfilename) "cmd.exe /c C:\Batchfiles\$batfilename" } -ArgumentList $batfilename -AsJob
}
Run-BatchFile
当我从myhost机器运行它时,我得到了这个输出..
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
5 Job5 RemoteJob Running True mycomputer param($batfilename) "c...
但是远程计算机上没有启动命令提示符和批处理文件。
关于我做错了什么或如何调试它的任何线索,因为看起来它可以正常工作。
谢谢,
约翰。
答案 0 :(得分:1)
您也可以使用PowerShell启动批处理文件。
function Run-BatchFile
{
param($computer = "mycomputer")
$batfilename = "mybatch.bat"
Invoke-Command -ComputerName $computer -ScriptBlock {param($batfilename) "powershell.exe -NoLogo -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -File C:\Batchfiles\$batfilename" } -ArgumentList $batfilename -AsJob
}
Run-BatchFile
请记住,我没有测试过这个确切的代码,但总体思路应该有用。
答案 1 :(得分:0)
尝试使用&符运算符启动脚本:
this.listView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
Timber.i("GroupPosition "+groupPosition);
return false;
}
});
基本上,因为你在引号中得到了命令,Powershell会将它视为字符串,而不是执行命令。 &符号迫使Powershell将其视为命令。有关详细信息,请参阅here。