По сути, у меня есть блок кода, который я буду выполнять только , если он находится в подкаталоге. Вот код, с которым я играл:
if ((Get-Location) -ne "T: \ Content \ WORK *") {
[System.Windows.MessageBox] :: Show ("Вы пытаетесь запустить файл вне подпапки диска T :.
Это приведет к ошибкам.
Вы уверены, что хотите продолжить? »,« Подтвердить выполнение »,« YesNoCancel »,« Warning »)
}
Я думал, что подстановочный оператор будет включающим: это означает, что он будет включать в себя папку WORK и подпапки, но блок кода выполняется в папке "WORK" и любой другой папке, в которой я его выполняю.
Вместо этого я хотел бы, чтобы это сообщение отображалось, если я говорю ... просто \ Content или C :. Если условие ложно, я хотел бы продолжить выполнение как обычно. В основном я не хочу, чтобы он отображался, если я нахожусь в \ Content \ WORK \ Scripts или в любой другой подпапке.
Как мне проще всего изменить этот код, чтобы он выполнялся, когда он возвращает true, что скрипт (или текущий каталог) находится в подкаталоге пути?
В случае, если кому-то интересно:
if((Get-Location) -NotLike "T:\Content\WORK*"){
$Result=[System.Windows.MessageBox]::Show("You are attempting to run the file outside a subfolder of the T: drive. This could result in errors. Are you sure you wish to continue?","Confirm Execution","YesNoCancel","Warning") switch($Result) {
"No" {exit}
"Cancel" {exit} }
}