Test-Path с переменными и тире в именах папок - PullRequest
0 голосов
/ 03 июля 2018

У меня есть набор папок, у меня есть схема именования, например 03 - March и т. Д.

Мне нужно проверить путь, и если true, я не могу получить правильные кавычки или экранирование. Вот мой код

$year = Get-Date -Uformat %Y
$month = Get-Date -Format MMMMMMMM

Test-Path "C:\thisyear\$month - $year"

Я тоже пробовал

Test-Path "C:\thisyear\$month '- $year"

Это тоже не работает

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Вы можете использовать параметр -Format Get-Date, чтобы содержать любой символ в качестве литерала (или заключать в кавычки буквальные части, как показано в комментарии mklement0 ), экранируя его обратной косой чертой, так что сценарий:

$Folder = Get-Date -F 'C:\\yyyy\\MM - MMM'

If (!(Test-Path $Folder)){
    "create folder {0}" -f $folder
    #  MD $Folder | Out-Null
} else {
   "folder {0} exists" -f $folder
}

выдаст

create folder C:\2018\07 - Jul

Команда для создания папки закомментирована, чтобы включить ее удалить #

0 голосов
/ 03 июля 2018

Вы можете использовать параметр -Format Get-Date для получения желаемого формата даты.

Похоже, вам нужен двузначный числовой год yy, отделенный - от полного названия месяца MMMM.

$Date = Get-Date -Format "yy - MMMM"
Test-Path "C:\thisyear\$Date"

Эта страница MSDN содержит полный список доступных операторов формата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...