Как преобразовать условие в пакетном скрипте в PowerShell? - PullRequest
0 голосов
/ 21 июня 2019

У меня есть пакетный скрипт, использующий для.Я хочу преобразовать его в сценарий 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

1 Ответ

0 голосов
/ 21 июня 2019

Похоже, вы просто пытаетесь создать переменную с именем 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"
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...