在 .bat 文件中编写 PowerShell 脚本

Write PowerShell script inside a .bat file

我无法创建 PowerShell 文件,只能使用现有的 .bat 文件。

这是我的 PowerShell 脚本,它检查是否有 hdd 硬盘和 return 布尔值。

$partitions = Get-CimInstance Win32_DiskPartition
$physDisc = get-physicaldisk
$arr = @()
foreach ($partition in $partitions){
    $cims = Get-CimInstance -Query "ASSOCIATORS OF `
                          {Win32_DiskPartition.DeviceID='$($partition.DeviceID)'} `
                          WHERE AssocClass=Win32_LogicalDiskToPartition"
    $regex = $partition.name -match "(\d+)"
    $physDiscNr = $matches[0]
    foreach ($cim in $cims){
        if($cim.deviceID -ne "C:" -and $cim.deviceID -ne "D:") {
            $arr += [PSCustomObject]@{
                MediaType = $($physDisc | ? {$_.DeviceID -eq $physDiscNr} | select -expand MediaType)
            }
        }
    }
}

($arr).MediaType -contains "hdd"

我没有找到如何在 Batch 指令中正确编写我的脚本 powershell.exe

@ECHO off
powershell.exe "My powershell script here">temp.txt
set /p areFullSSD=<temp.txt
if NOT %areFullSSD%==False goto :noSSD
ECHO areFullSSD
:noSSD
ECHO test
PAUSE

感谢您的帮助。

来自 Microsoft 文档,

对于内联脚本,

要执行在字符串中定义的内联脚本块,可以使用调用运算符 &

pwsh -Command "& {Get-WinEvent -LogName security}"

有关此参数的文档可在以下网页获得,

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_powershell_exe?view=powershell-5.1