一、功能概述
本源码的最终目的是获得一个指定名称的文件夹。流程图如下:
graph TD
start(开始) --> con1{目标文件夹是否存在?} --目标存在--> end1(结束)
con1--目标不存在---> con2{判断正则是否匹配}--正则匹配到目录--> con3[匹配次数大于1?]--匹配大于1次-->end1
con2 --不存在正则匹配的目录--> op2[创建目标文件夹] --> end1
con3 --存在1次正则匹配的目录--> op3[重命名匹配到的目录为目标目录名] -->end1
二、源码分享
param($target, $regex)
$exitDir = Test-Path $target -PathType Container
echo "Target exists:"$exitDir
if(!$exitDir){
echo "Target not exists"
$dirListMatched = @()
if($regex -ne $null){
$dirListMatched = Get-Item $regex
}
if($dirListMatched.Count -eq 0){
echo "TargetReg not matched"
New-Item $target -ItemType Directory
}elseif($dirListMatched.Count -eq 1){
echo "TargetReg matched 1 times"
Move-Item $dirListMatched[0] $target
}else{
echo "TargetReg matched more than 1 times, exit!!!"
exit
}
}
echo "Already exist..."
三、简单使用举例
将上述源码保存到createDir.ps1文件中,
- 执行
./createDir.ps1 d:\abcd
直接在d盘根目录创建abcd文件夹。 - 执行
./createDir.ps1 d:\1234 d:\abcd
如果d盘根目录存在abcd文件夹,则将abcd重命名为1234; 不存在则直接创建123目录。 - 执行
./createDir.ps1 d:\finished d:\12*
如果d盘根目录存在12开头的文件夹,则将12开头的目录重命名为finished; 不存在12开头的文件夹则直接创建finished目录。