簡體   English   中英

將 Powershell 腳本傳遞給批處理文件

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM