我在一個目錄中有250.000個文件。
這些文件都在格式將文件批量複製到與文件名匹配的新目錄
1a.jpg
1b.jpg
1c.jpg
...並上升到1f.jpg那麼這個數是由一個
2a.jpg
2a.jpg
2c.jpg
增加...等等。
現在我想將所有以1開頭的文件複製到一個名爲1的新目錄中,
以2開頭的所有文件到目錄2等等。
任何人都可以幫忙嗎?
我在一個目錄中有250.000個文件。
這些文件都在格式將文件批量複製到與文件名匹配的新目錄
1a.jpg
1b.jpg
1c.jpg
...並上升到1f.jpg那麼這個數是由一個
2a.jpg
2a.jpg
2c.jpg
增加...等等。
現在我想將所有以1開頭的文件複製到一個名爲1的新目錄中,
以2開頭的所有文件到目錄2等等。
任何人都可以幫忙嗎?
你可以試試這個「老土」。BAT批處理文件,如果你想:
@echo off
setlocal EnableDelayedExpansion
for %%f in (*.jpg) do (
set dir=%%~Nf
set dir=!dir:~0,-1!
if not exist !dir! md !dir!
copy %%f !dir!
)
複製此批處理文件所在的目錄文件駐留並執行它。它將創建同一級別的新目錄,但您可以輕鬆修改此目錄。
集團所有通過的第一個字符的文件,然後各組複製到目標文件夾:
Get-ChildItem -Filter *.jpg | Group-Object {$_.Name[0]} | Foreach-Object { $_.Group | Copy-Item -Destination "C:\test\$($_.Name)" }
編輯:這應該更快地執行:
Get-ChildItem *.jpg | Copy-Item -Destination { "C:\test\$($_.Name[0])" }
它不起作用。是我的文件應該在哪裏的C:\測試? – user1197199 2012-02-08 14:46:12
c:\ test是所有目標文件夾應存在的位置。 – 2012-02-08 14:54:33
嘗試:
dir -filter *.jpg | % { Copy-Item -PATH $_ -DESTINATION .\$($_.BaseName.ToCharArray()[0]) }
這樣,目標文件夾必須存在!
我創建了一些目錄1,2和3,但運行命令時沒有任何反應 – user1197199 2012-02-08 14:47:34
執行命令時是否在源文件夾中? – 2012-02-08 14:56:04
如果你有一個目錄名ň [A-F] .JPG 250000頁的文件,我希望ň去從1至41,667你想有41,667目錄數6個JPG文件。如果是這樣的話,這裏是我的解決方案,一個涉及多一點:
最後,該項目被複制到目標文件夾。
Get-ChildItem *.jpg | ForEach-Object {
$destination = $_.FullName -replace '[a-f]\.jpg'
if (-not (Test-Path -Path $destination -PathType Container)) {
$null = New-Item -Path $destination -ItemType directory
}
Copy-Item -Path $_.FullName -Destination $destination
}
這與我想要的完全一樣!非常感謝 – user1197199 2012-02-09 09:27:18