我有用于的批处理脚本。我想将其转换为PowerShell脚本,任何人都可以提供帮助吗?
for %%i in (c d e f g h) do (
dir %%i: > nul 2>&1
if not errorlevel 1 (
if exist %%i:\System.sav\CTO.txt (
set WinDrive=%%i:
)
)
)
我的期望,我可以将其转换为PowerShell脚本
答案 0 :(得分:0)
似乎您只是在尝试创建一个名为WinDrive的变量。在Powershell中,由于变量以$开头,因此如果在文件上找到该文件,则最接近的转换会将$ WinDrive设置为驱动器号。通过做
foreach($DriveLetter in @('c','d','e','f','g','h'))
{
if(Test-Path "$DriveLetter`:\System.sav\CTO.txt")
{
$WinDrive = "$DriveLetter`:"
}
}
如果您希望它更具动态性,则可以检测系统上所有可用的驱动器号。
foreach($DriveLetter in $(Get-PSDrive -PSProvider FileSystem | Select-Object -ExpandProperty Root))
{
if(Test-Path "$DriveLetter`System.sav\CTO.txt")
{
$WinDrive = "$DriveLetter"
}
}