Получение скрипта для выхода, если в Get-Content отказано или он не найден - PullRequest
0 голосов
/ 23 сентября 2019

, поэтому я работаю над небольшим скриптом, сравнивающим два файла с использованием Get-Content.Пока что все работает, но есть одно маленькое предупреждение.Я хотел бы, чтобы скрипт выдал ошибку и остановил , если get-content для $ location не найден или запрещен.Я думал, что-то вроде оператора if для этого, но у меня возникли трудности.

if([string]::IsNullOrWhiteSpace($location)){

write-host "please input a valid path"
exit 

Обновление - есть входное значение $ location, которое вы вводите, скажем, c: \ test \ test.txt.То, как работает текущий скрипт, это берет этот ввод и помещает его в «(Get-Content -Path $ location)».Если вы введете правильный путь и файл, это сработает, и скрипт продолжит работу и выдаст сообщение «Сравнение завершено».Но если вы введете местоположение и файл, который не существует, скажем, что c: \ awoieroiuaf сценарий продолжается и выдаст ошибку error- Content: Не удается найти путь 'C: \ pscript \ hashgenv4.ps1 C: \ Test2 c: \awoieroiuaf ', потому что он не существует.

И затем он говорит: «Сравнение завершено».Как я уже говорил ранее, я хотел бы сначала проверить пользовательский ввод, чтобы определить, что путь существует, прежде чем продолжать работу со сценарием.

И пробовал несколько различных методов.

}    
else
{

Compare-Object -ReferenceObject $(Get-Content -Path $title2hashstorage/$sha256) -DifferenceObject $(Get-Content -Path $location)| Out-GridView


Write-host "Comparison is complete"
}                                        
exit                          

1 Ответ

0 голосов
/ 24 сентября 2019

Вы можете сделать завершающую ошибку для get-content:

'one'
get-content foo -erroraction stop
'three'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...