命令行.目录?系统诊断.要字符串的命令行对象?变量



Get-Proccess之后,我不确定如何推断部分数据并在命令中使用该数据

(Get-Process magic)[0].CommandLine

返回

PS C:WINDOWSSystem32> "\NASNAS_SoftwareProgramMagic.exe" "\NASNAS_DatabaseTestSubject"

我想使用结果中给定的(测试主题(目录作为复制项中的路径

Get-ChildItem -Path "XXXXXXXXX" -Include *0.dcm -Recurse | Copy-Item -Destination C:SubjectsNew

由于我不是一个程序员,我希望有人能在我进入错误的对象、字符串等兔子洞之前给我指明正确的方向

提前谢谢。

尝试以下代码片段(我使用硬编码$x(:

$x   = '"\NASNAS_SoftwareProgramMagic.exe" "\NASNAS_DatabaseTestSubject"'
# $x = (Get-Process magic)[0].CommandLine
$arg = ($x | ConvertFrom-Csv -Delimiter ' ' -Header prog, arg).arg
$arg                                        ### \NASNAS_DatabaseTestSubject
Get-ChildItem -Path "$arg" -Include *0.dcm -Recurse | Copy-Item -Destination C:SubjectsNew

在所描述的特定情况下(路径中没有空格(,以下也可以工作:

$arg = $x.split(' ',[StringSplitOptions]::RemoveEmptyEntries)[1].Trim('"')

但是,我更希望ConvertFrom-Csvcmdlet能够正确处理$x的任何部分中可能存在的空间。

命令行属性已经是一个字符串(只有powershell 7有这个(。这实际上是一个关于如何获得字符串的一部分的问题。我会这么做的。将-split放入第一个单词,然后使用Split-Path获取目录,并将-replace的双引号中无任何内容。

$commandline = '"\NASNAS_SoftwareProgramMagic.exe" "\NASNAS_DatabaseTestSubject"'
(split-path (-split $commandline)[0] ) -replace '"'
\NASNAS_SoftwareProgram

相关内容

  • 没有找到相关文章

最新更新