创build一个文件夹,如果它不存在 – “项目已经存在”

我试图创build一个文件夹使用PowerShell,如果它不存在,所以我做了:

$DOCDIR = [Environment]::GetFolderPath("MyDocuments") $TARGETDIR = "$DOCDIR\MatchedLog" if(!(Test-Path -Path MatchedLog )){ New-Item -ItemType directory -Path $DOCDIR\MatchedLog } 

这给我错误,该文件夹已经存在,它做,但它不应该试图创build它。

我不确定这里有什么问题

New-Item:具有指定名称C:\ Users \ l \ Documents \ MatchedLog的项目已经存在。 在C:\ Users \ l \ Documents \ Powershell \ email.ps1:4 char:13 + New-Item <<<< -ItemType directory -Path $ DOCDIR \ MatchedLog + CategoryInfo:ResourceExists:(C:\ Users \ l。 … ents \ MatchedLog:String)[New-Item],IOException + FullyQualifiedErrorId:DirectoryExist,Microsoft.PowerShell.Commands.NewItemCommand`

我甚至没有专注,这是怎么做的

 $DOCDIR = [Environment]::GetFolderPath("MyDocuments") $TARGETDIR = '$DOCDIR\MatchedLog' if(!(Test-Path -Path $TARGETDIR )){ New-Item -ItemType directory -Path $TARGETDIR } 

使用New-Item,您可以添加Force参数

 New-Item -Force -ItemType directory -Path foo 

或者ErrorAction参数

 New-Item -ErrorAction Ignore -ItemType directory -Path foo 

使用-Not运算符的替代语法并根据您的偏好设置可读性:

 if( -Not (Test-Path -Path $TARGETDIR ) ) { New-Item -ItemType directory -Path $TARGETDIR }