Я пытался написать скрипт для проверки доступности пути к файлу.Одним из процессов является то, что пользователь должен ввести путь к файлу или просто перетащить файл в командную строку Powershell.
В этом процессе пользователь будет вводить путь к файлу как C: \ Program Files \7-Zip \ 7z.exe и строка станет значением переменной $ filePath , которая будет использоваться в качестве параметра команды Test-Path.
Но иногдапользователь просто перетянет файл в командную строку Powershell, чтобы в строке была пара кавычек, как на рисунке 1. ("C: \ Program Files \ 7-Zip \ 7z.exe") Изображение1
Тогда вы увидите, когда я попытаюсь проверить путь с помощью команды Test-Path с этой переменной $ filePath, в то время как значение (строка) $ filePath включает пару кавычек , результат всегда будет False, даже если путь существует и действителен.Но когда я использую ту же команду Test-Path без использования переменной (я имею в виду просто скопировать и вставить путь к файлу в команду), она работает нормально.
ЭТО странно!
Я попытался ввести путь к файлу с помощью клавиатуры в переменную вместо перетаскивания файла в командную строку Powershell.(Без кавычек) Затем используйте тот же метод для проверки пути к файлу (используя переменную для пути к файлу).Работает нормально.
Картинка 2
Не понимаю.Разве это не одно и то же?
, когда
$filePath = "C:\Program Files\7-Zip\7z.exe"
Ниже 2 команд ДОЛЖНЫ иметь одинаковый результат!ПОЧЕМУ они не?
Test-Path -Path $filePath
Test-Path -Path "C:\Program Files\7-Zip\7z.exe"