我正在编写一个PowerShell脚本,该脚本将按需运行工具。
这是我的代码: ES.Config.xml - 这是一个xml文件,用于存储我想从PowerShell运行的诊断命令。它存储为一个字符串(参见DEV.Diagnostic.ExecuteCommand:
digraph name {
rankdir="LR";
node [shape="record"];
B [label="FIFO|<r_in>r_in|<o>o"];
A [label="FWD|<i>i|<r_in>r_in|<r_out>r_out|<o>o"];
C [label="Cons|<i>i|<r_out>r_out|<o>o"];
1 [label="OUTPUT"];
A:o:e -> C:i:w;
C:r_out:w -> A:r_in:e;
B:o:e -> A:i:w;
C:o:e -> 1:w;
A:r_out:w -> B:r_in:e;
}
在我的powershell脚本中,我尝试将命令运行为:
<DEV>
<Diagnostic FolderPath="" ExecuteCommand="C:\ElasticSearch\support-diagnostics-5.12\diagnostics.bat --host localhost --port 9200 --user elastic -p" />
$ global:DiagnosticCommand是一个全局变量,用于存储值&#34; C:\ ElasticSearch \ support-diagnostics-5.12 \ diagnostics.bat --host localhost --port 9200 --user elastic -p&#34;
运行此命令时总是出错。任何建议将不胜感激。
答案 0 :(得分:0)
我无法确定您使用此内容的上下文,或许下面的示例会有所帮助。我见过两个可以帮助你的关键命令行。我提供了一个不需要显式路径的示例,尽管您可以使用ArgumentList或-ScriptBlock的参数指向完整路径{在此处输入完整的可执行文件和参数}
Start-Process -FilePath C:\Windows\SysWOW64\mstsc.exe -ArgumentList "/?"
Start-Process -FilePath msiexec.exe -ArgumentList "/?"
Invoke-Command -ScriptBlock {C:\Windows\SysWOW64\mstsc.exe /?}
Invoke-Command -ScriptBlock {msiexec.exe /?}
在您的情况下,您可以尝试以下方法吗?
Invoke-Command -ScripBlock{
C:\ElasticSearch\support-diagnostics-5.12\diagnostics.bat --host localhost --port 9200 --user elastic -p}
您可以参考两个命令行开关的完整technet白皮书: https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Management/Start-Process?view=powershell-5.1