Похоже, вы просто пытаетесь создать переменную с именем 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"
}
}