具有可变文件夹名的测试路径

时间:2018-06-24 13:34:31

标签: powershell powershell-v2.0 powershell-v3.0

我想根据变量检查文件夹是否存在:

$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
}

每次运行脚本时,即使存在该脚本,它也会丢弃自定义错误消息“ No folder:/”。

如果我尝试

$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 :(得分:1)

在Ansgar发表评论后编辑

以下作品

if (!(Test-Path $path))  

此外,在您尝试的第二个测试中,$ foldername已经包含一个路径,这意味着您将两个路径名串联在一起。例外是报告它:

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