我想构建一个脚本,扫描文件夹树并验证它们是否正确的名称。脚本来检查文件夹estructure
基本上,作为一个例子,我有以下文件夹结构:
├───01 │ ├───010001 │ │ ├───010001102030405060 │ │ │ ├───declarante │ │ │ ├───docs │ │ │ ├───entidadelegal │ │ │ ├───proprietario │ │ │ └───representante │ │ └───010001102030405061 │ └───010002 ├───02 ├───03 └───04
随着网络的文件夹,往往业主不建立在适当的地方文件夹。每天都会遇到的情况,如:
├───01 │ ├───010001 │ │ ├───010001045715873654 │ │ ├───010001741014756984a │ │ ├───010001741z14756984 │ │ ├───0144dshbc │ │ └───014758 │ ├───010002 │ ├───010003 │ └───010004a ├───02 ├───03 └───aaa
- 在文件夹中的第一级,只有文件夹01,02 ... 13
- 在第二级别的文件夹是文件夹中,只有名称有6个数字,条件是2/1匹配第一级别的文件夹(例如1级01号文件夹,2级文件夹010,001 ... 1级02文件夹,2级020,001文件夹...) 。
- 在第三级文件夹中,名称只有18个数字的文件夹,前提是6/1对应于上一级别的文件夹(例如,级别2:010001文件夹,级别3:010001102030405060文件夹级别... 2 :020,001文件夹,3级:020001123456789012文件夹...)。
- 在第四和最后一级,其18号每个文件夹,只能包含文件夹与名称 “declarante”, “文档”, “entidadelegal”, “的Proprietario” 和“representante“。 可能不是同一时间的5个,但只能是具有这些名称的文件夹。
正如你在第二个文件夹结构看,上面,在1级,我有一个名为“AAA”一个错误的文件夹。
- 在级别2,我有一个名为“010004a”的文件夹错误。
- 在级别3,我的文件夹错误为“010001741014756984a”,“010001741z14756984”,“0144dshbc”和“014758”。
我有一个验证文件夹名称的PowerShell脚本,但是如何在文件夹中跳转文件夹?我怎样才能做这个练习?
Get-ChildItem | Where-Object {
$_.Name -notmatch "^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]+$"
}
使用Get-childitem并通过每个文件夹层次遍历。因此,检查第一个级别是否包含所需的名称,比做一个foreach gci,并检查二级要求等等。我们正在做你的功课吗? :) – Martin
当然不打算做我的“家庭作业”,但这个命令“foreach gci”没有知识...验证已经得到,但跳到文件夹中的文件夹不知道该怎么办...我会用这个命令测试它能做什么。 – ghostrat26
gci是get-childitem的别名。 imeant,你将得到顶级的所有项目(目录)与gci。比你在这些目录中做一个gci,获得所有2级目录,你再次测试你的命名需求。如果测试通过,您将再次对这些文件夹执行gci等操作。 – Martin