如果文件夹不存在,则创建该文件夹 - “项目已存在”

时间:2013-06-26 20:04:29

标签: powershell

我正在尝试使用PowerShell创建一个文件夹,如果它不存在,那么我做了:

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

这给了我文件夹已经存在的错误,但它不应该尝试创建它。

我不确定这里有什么问题

  

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

3 个答案:

答案 0 :(得分:105)

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

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

答案 1 :(得分:48)

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

New-Item -Force -ItemType directory -Path foo

或ErrorAction参数

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

答案 2 :(得分:15)

使用-Not运算符的替代语法,具体取决于您对可读性的偏好:

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