我想运行一个外部进程并将其命令输出捕获到PowerShell中的变量.我目前正在使用这个:
$params = "/verify $pc /domain:hosp.uhhg.org"
start-process "netdom.exe" $params -WindowStyle Hidden -Wait
Run Code Online (Sandbox Code Playgroud)
我已经确认命令正在执行但我需要将输出捕获到变量中.这意味着我无法使用-RedirectOutput,因为这只会重定向到文件.
我下载了用于合并 junit 报告的 npm 包 - https://www.npmjs.com/package/junit-merge。
问题是我有多个文件要合并,并且我正在尝试使用字符串变量来保存要合并的文件名。
当我自己编写脚本时,如下所示:
junit-merge a.xml b.xml c.xml
Run Code Online (Sandbox Code Playgroud)
这有效,正在创建合并文件,但是当我这样做时
$command = "a.xml b.xml c.xml"
junit-merge $command
Run Code Online (Sandbox Code Playgroud)
这是行不通的。错误是
错误:找不到文件
有人遇到过类似的问题吗?
我正在创建一个 PowerShell,它使用以下命令运行一个简单的 Java 程序:
Start-Process -filepath .\java.exe -ArgumentList "Input" -NoNewWindow
Run Code Online (Sandbox Code Playgroud)
在本例中,Input 类只是接受并打印一个字符串。
我期望长度大于cmd.exe8191 个字符限制的字符串,因此我需要在 PS 中运行它。
当前场景:
Input接受大于 8191 个字符的字符串。我-Wait也尝试添加,但运气不佳。
任何想法?
在 pwsh 中调用以下命令:
Write-Host '{"drop_attr": "name"}'
Run Code Online (Sandbox Code Playgroud)
结果正常:
{"drop_attr": "name"}
Run Code Online (Sandbox Code Playgroud)
现在通过 pwsh 执行相同操作:
pwsh -Command Write-Host '{"drop_attr": "name"}'
Run Code Online (Sandbox Code Playgroud)
结果缺少引号和方括号?
drop_attr: name
Run Code Online (Sandbox Code Playgroud) 我有一些像这样的视频文件:
VideoName_s01e01.mp4季节和剧集是变量.我想在s??和之间添加一个下划线("_")e??.
我一直在使用powershell进行重命名,我有一个起点:
GCI $path -filter '*_s??e??*' -rec | Ren -new { $_.name -replace '_s[0-9][0-9]', '_s[0-9]_[0-9]_' } -passthru
Run Code Online (Sandbox Code Playgroud)
这实际上重命名了我的文件VideoName_s[0-9]_e[0-9].mp4.
基本上,我正在寻找s??e??我不知道如何在替换部分中使它们成为变量的字符.
我认为最好的方法是:
e??s??(我们称之为X)的位置.X-3._到中间的" ".