我有一些powershell脚本。相反,您可以键入totalcmd *,然后输入所需的另一个进程。
$tc = get-process -Name totalcmd* | format-wide -property Name
echo $tc
if ($tc -eq "Totalcmd64")
{
Stop-Process -Name totalcmd*
}
Start-Sleep 10
我认为它不起作用,因为我的$ tc不等于字符串“ totalcmd”。如何删除cmdlet get-process -Name totalcmd* | format-wide -property Name
输出的多余空格并正确比较字符串?
答案 0 :(得分:1)
由于用管道输送到<div class="row col-md-12">
<div class="col-md-12">
Votre entité générale :
<select data-val="true" data-val-number="The field TypeEntityId must be a number." data-val-range="The field TypeEntityId must be between 1 and 2147483647." data-val-range-max="2147483647" data-val-range-min="1" data-val-required="Vous devez donner un TYPE d'entité"
id="TypeEntityId" name="TypeEntityId">
<option value="">Sélectionnez une entité générale</option>
<option value="2">Départements & Services centraux</option>
<option value="3">Centre de secours</option>
<option value="4">Section locale (Bruxelles) </option>
<option value="5">Comité Provincial</option>
<option value="6">Relais</option>
<option value="7">SISU</option>
<option value="8">Centre ADA</option>
<option value="9">Maison Croix-Rouge</option>
</select>
<span class="field-validation-valid text-danger" data-valmsg-for="TypeEntityId" data-valmsg-replace="true"></span>
</div>
</div>
<br>
<div class="row col-md-12">
<div class="col-md-12">
Votre entité locale :
<select data-val="true" data-val-number="The field EntityId must be a number." data-val-range="The field EntityId must be between 1 and 2147483647." data-val-range-max="2147483647" data-val-range-min="1" data-val-required="Vous devez donner une ENTITE"
id="EntityId" name="EntityId"><option value="">Sélectionnez une entité locale</option>
</select>
<span class="field-validation-valid text-danger" data-valmsg-for="EntityId" data-valmsg-replace="true"></span>
</div>
</div>
,所以不会以字符串结尾。这些cmdlet最适合在屏幕上表示数据。而是选择属性,然后使用format-wide
将其作为字符串返回:
-ExpandProperty
答案 1 :(得分:1)
您通常认为$ tc不等于“ totalcmd”,这是因为设置$ tc时,您正在创建一个数组(最有可能是一个元素)。您可以通过运行$tc | get-member
来测试您正在使用的对象类型。
要使用字符串对象,也可以使用Out-String
cmdlet。
答案 2 :(得分:1)
如果要显式停止TotalCmd64进程,为什么不简单使用:
Get-Process -Name TotalCmd64 | Stop-Process
如果要在程序的64/32位版本之间切换,请使用switch语句(未经测试):
$tc = (Get-Process -Name TotalCmd*).Name
switch ($tc){
'TotalCmd' {Get-Process -Name TotalCmd |Stop-Process;"Start TotalCmd64";Break}
'TotalCmd64' {Get-Process -Name TotalCmd64|Stop-Process;"Start TotalCmd32";Break}
default {"No TotalCmd* processes found"}
}