我想構建一個腳本,掃描文件夾樹並驗證它們是否正確的名稱。腳本來檢查文件夾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