我想根据变量检查文件夹是否存在:
$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.
答案 0 :(得分:1)
在Ansgar发表评论后编辑
以下作品
if (!(Test-Path $path))
此外,在您尝试的第二个测试中,$ foldername已经包含一个路径,这意味着您将两个路径名串联在一起。例外是报告它:
C:\Scripts\temp\C:\Scripts\temp\20180624