如何比较文件夹是否存在以及是否存在,请创建她

Est*_*nça 6 powershell scripting windows-scripting powershell-3.0

我有以下问题,我需要创建一个脚本,比较目录是否存在,如果它不存在,创建它.在linux shell中,我使用参数-F来检查目录是否存在.如何在PowerShell中测试?

在Linux shell中:

DIR=FOLDER

if [ -f $DIR ]
then
    echo "FOLDER EXIST";
else
    echo "FOLDER NOT EXIST";
    mkdir $DIR
fi
Run Code Online (Sandbox Code Playgroud)

如何在Windows PowerShell中进行此比较?

$DIRE = "C:\DIRETORIO"

if ( -e $DIRE ) {
    echo "Directory Exists"
} else {
    md DIRETORIO
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ndl 9

您还可以将New-Itemcmdlet与force参数一起使用,甚至不必检查该目录是否存在:

New-Item -Path C:\tmp\test\abc -ItemType Directory -Force
Run Code Online (Sandbox Code Playgroud)

  • 上面回答中建议的命令相当于告诉PowerShell*为我找到路径'C:\ tmp\test\abc'的文件夹对象.如果它已经存在,那很好; 如果没有,创建它,并给我这个对象.我不在乎你是怎么做的,只是不要删除任何东西,并让它发生.*我在脚本中使用它,这是一种干净,安全的方法来确保路径存在而不会对现有文件造成任何损害或文件夹.这似乎正是OP的意图,即使它不是他们所要求的. (3认同)

Mar*_*agg 5

根据评论,Test-Path您应该使用 PowerShell cmdlet 来检查文件或目录是否存在:

$DIRE = "C:\DIRETORIO"

if ( Test-Path $DIRE ) {
    echo "Directory Exists"
} else {
    md DIRETORIO
}
Run Code Online (Sandbox Code Playgroud)

Test-Path cmdlet 确定路径的所有元素是否都存在。如果所有元素都存在,则返回 $True,如果缺少任何元素,则返回 $False。它还可以判断路径语法是否有效以及路径是否通向容器、终端或叶元素。