[英]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.