簡體   English   中英

根據長度遞歸重命名文件夾

[英]Recursively rename folders based on length

我在數千個目錄中有數千個文件。 其中一些路徑失控,並且超出Windows的處理范圍,因此當我嘗試在PowerShell中訪問文件時,出現錯誤。 如果這些路徑中包含一定長度的字符,我該如何重命名這些文件夾? (例如,對於一個文件夾,超過50個字符)

編輯:

不,不是Linux。

錯誤:這是在我進行遞歸搜索時發現服務器上的所有文件的時候。

Get-ChildItem:指定的路徑,文件名或兩者都太長。 完全限定的文件名必須少於26 0個字符,目錄名稱必須少於248個字符。

使用subst將父文件夾映射到驅動器號,然后從那里繼續。

與另一個人一起編寫代碼后,我們提出了一些可行的方法。 實際上,我不得不使搜索長度變小,因為其中某些路徑確實失控了。

takeown /f \\server\share\foo /r /d Y /a >c:\takeown.log

$folders= Get-ChildItem -Path "\\server\share\foo" -recurse | where {$_.PsIsContainer}
$sortedfolders = $folders | sort-object -descending -property fullname
foreach ($f in $folders) {
if ($f.name.length -gt 10) { 

   rename-item $f.fullname (get-random).tostring()
   } 
}


$aolesfolders | gm

$sorted | ft fullname
$aolesfolders | select-object name, root, fullname, parent | export-csv     c:\testrename.txt
get-random | gm
(get-random).ToString().gettype()

foreach ($f in $folders) {
if ($f.name.length -gt 10) { 

   rename-item $f.fullname (get-random).tostring()
   } 
} 

{rename-item $f.name $f.parent+}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM