Test-Path с переменным именем - PullRequest
0 голосов
/ 24 июня 2018

Я хочу проверить, существует ли папка на основе переменных:

$folderdate = (Get-Date -Format "yyyyMMdd")
$foldername = "C:\Scripts\temp\$folderdate"

$path = $foldername

if (!(Test-Path $path)) {
    $wshell = New-Object -ComObject WScript.Shell
    $wshell.Popup("No folder :/ ")
    exit
}

Каждый раз, когда я запускаю скрипт, он отбрасывает пользовательское сообщение об ошибке «Нет папки: /», даже если оно там есть.

Если я попытаюсь

$CheckFolder = Test-Path "C:\Scripts\temp\Folder"

if ($CheckFolder) {
    continue
} else {
    $wshell = New-Object -ComObject WScript.Shell
    $wshell.Popup("No folder :/ ")
    exit
}

, он будет работать правильно.Я также пытался без $, и скрипт имеет такое же поведение.Я пытался $path = "C:\Scripts\temp\$foldername", но это падает

+ CategoryInfo          : InvalidOperation: (C:\Scripts\temp\C:\Scripts\temp\20180624:String) [Test-Path], NotSupportedException
+ FullyQualifiedErrorId : ItemExistsNotSupportedError,Microsoft.PowerShell.Commands.TestPathCommand error.

1 Ответ

0 голосов
/ 24 июня 2018

Отредактировано после комментария от Ansgar

Следующие работы

if (!(Test-Path $path))  

Также во втором тесте, который вы пробовали, $ foldername уже содержал путь, что означает, что вы объединили два пути.Исключение сообщает об этом:

C:\Scripts\temp\C:\Scripts\temp\20180624
...