在 .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}"
有关此参数的文档可在以下网页获得,
我无法创建 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}"
有关此参数的文档可在以下网页获得,