小编Den*_*s.A的帖子

从bat文件将参数传递给PowerShell

我拼命地尝试将参数从批处理文件传递到PowerShell脚本,该脚本检查Windows服务是否正在运行.

这是我完全可操作的命令:

.\nsrservices.ps1 -cmd running nsrexecd,stisvc
Run Code Online (Sandbox Code Playgroud)

但问题是命令的行为:

  • 在PowerShell窗口中,服务名称被视为两个(或更多),因此检查'nsrexecd'然后检查'stisvc'
  • 在批处理文件中,服务名称作为唯一值传递给PowerShell,因此检查'nsrexecd,stisvc'

这是我的bat文件:

powershell.exe -File .\nsrservices.ps1 -cmd running nsrexecd,stisvc
ECHO.%ERRORLEVEL%
exit /B %ERRORLEVEL%
Run Code Online (Sandbox Code Playgroud)

在我的PS文件中,参数定义如下:

param([string]$cmd=$(throw "Type d'action manquante !"),[string[]]$srv)
Run Code Online (Sandbox Code Playgroud)

在日志文件中,我得到了这两个结果(抱歉法国输出).

在PowerShell窗口中:

24/12/2015 09:02:50-Paramètres appelés : cmd=running srv=stisvc nsrexecd
24/12/2015 09:02:50-Début test de l'état running du service : stisvc
24/12/2015 09:02:50-    Début évaluation de l'état du service : stisvc
24/12/2015 09:02:50-    Fin évaluation de l'état du service : stisvc
24/12/2015 09:02:50-Le service tourne
24/12/2015 09:02:50-Fin test de l'état running du service : stisvc
24/12/2015 …
Run Code Online (Sandbox Code Playgroud)

powershell batch-file

6
推荐指数
1
解决办法
3583
查看次数

Perl - 在条件下删除数组的行

当列满足正则表达式时,如何删除数组的行?

示例:

'0','john','192.168.0.1'
'1','james','192.168.1.1'
'2','pat','192.168.0.1'
Run Code Online (Sandbox Code Playgroud)

我想删除第三列中包含xxx.xxx.1.x的所有行(或保存不包含...的行)

也许egrep将是最好的解决方案(因为我不想使用耗时的循环),但我不知道如何指定列和正则表达式.

arrays perl

-3
推荐指数
1
解决办法
64
查看次数

标签 统计

arrays ×1

batch-file ×1

perl ×1

powershell ×1