我正在编写一个PowerShell脚本来创建几个目录(如果它们不存在) .
文件系统看起来与此类似
D:\
D:\TopDirec\SubDirec\Project1\Revision1\Reports\
D:\TopDirec\SubDirec\Project2\Revision1\
D:\TopDirec\SubDirec\Project3\Revision1\
-
每个项目文件夹都有多个修订版 .
-
每个修订文件夹都需要一个Reports文件夹 .
-
某些"revisions"文件夹已包含Reports文件夹;但是,大多数人没有 .
我需要编写一个每天运行的脚本来为每个目录创建这些文件夹 .
我能够编写脚本来创建文件夹,但创建多个文件夹是有问题的 .
10 回答
你试过
-Force
参数吗?您可以先使用Test-Path -PathType Container进行检查 .
有关更多详细信息,请参阅New-Item MSDN帮助文章 .
从您的情况来看,您需要每天创建一次“Revision#”文件夹,其中包含“Reports”文件夹 . 如果是这种情况,您只需要知道下一个修订号是什么 . 编写一个获取下一个修订号Get-NextRevisionNumber的函数 . 或者你可以这样做:
PowerShell 3.0 installation
我希望能够轻松地让用户为PowerShell创建默认配置文件以覆盖某些设置,最后使用以下单行(多个语句是,但可以粘贴到PowerShell中并立即执行,这是主要目标):
为了便于阅读,以下是我将如何在ps1文件中执行此操作:
Test-Path
检查路径是否存在 . 如果没有,它将创建一个新目录 .这是一个适合我的简单方法 . 它检查路径是否存在,如果不存在,它不仅会创建根路径,还会创建所有子目录:
第一行创建一个名为
$path
的变量,并为其指定"C:\temp"的字符串值第二行是
If
语句,它依赖于Test-Path cmdlet来检查变量$path
是否不存在 . 使用!
符号限定not exists第三行:如果找不到上面字符串中存储的路径,将运行大括号之间的代码
md
是输入的简短版本:New-Item -ItemType Directory -Path $path
注意:我没有使用下面的
-Force
参数进行测试,以查看路径是否已存在时是否存在不良行为 .New-Item -ItemType Directory -Path $path
我有同样的问题 . 你可以使用这样的东西:
我知道使用PowerShell创建目录的方法有3种
以下代码段可帮助您创建完整路径 .
上面的函数拆分传递给函数的路径,并检查每个文件夹是否存在 . 如果它不存在,它将创建相应的文件夹,直到创建目标/最终文件夹 .
要调用该函数,请使用以下语句:
指定
-Force
标志时,如果文件夹已存在,PowerShell将不会报警 .一内胆:
顺便说一下,有关安排任务的信息,请查看以下链接:Scheduling Background Jobs .