[英]Pass Powershell script to batch file
我正在尝试创建一个有效的 PowerShell 脚本。 但是,它在 function 中不能正常工作,我们认为这是格式类型的问题。
你能帮我把这个 function 传递给 cmd/batch 命令吗?
$datos = quser
foreach($id in $datos)
{
$nom = ""
$userid = $id -split '\s+'
$ad = $userid[0].Replace(">","")
if ($ad -eq $usuario)
{
$nom = $ad
$userid[2]
}
}
仅从quser
命令实用程序获取 ID 是 function。
这个 PowerShell 将 output 来自 quser.exe 的活动控制台 session ID。 保存到文件 Get-Qusers.ps1
$pattern = '(?<username>.*?) {2,}(?<sessionname>.*?) {2,}(?<id>.*?) {2,}(?<state>.*?) {2,}(?<idletime>.*?) {2,}(?<logontime>.*?)$'
$quser = quser.exe
($quser | Select-String -Pattern $pattern ).Matches | Select-Object -Skip 1 | ForEach-Object {
[PSCustomObject]@{
Username = $_.Groups['username'].Value.Trim() -replace '>'
Sessionname = $_.Groups['sessionname'].Value
Id = $_.Groups['id'].Value
State = $_.Groups['state'].Value
IdleTime = $_.Groups['idletime'].Value
LogonTime = $_.Groups['logontime'].Value
}
} |
Where-Object { $_.Sessionname -eq 'console' } |
Select-Object -ExpandProperty Id
在批处理文件中运行 ps1 脚本并将 Id 保存到变量
echo off
FOR /F "tokens=*" %%g IN ('powershell.exe -f get-qusers.ps1') do (SET QuserId=%%g)
echo %QuserId%
问题未解决?试试以下方法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.