[英]How to rename files within subfolder to the parent directory and retain file extension - Powershell
[英]How to rename files within subfolder to the parent directory Powershell
我在運行允許子文件夾中的文件從其父目錄命名的循環時遇到問題。 我目前的文件結構如下:
C:\test data
Folder 1
12345676.txt
35234443.mp4
23432234.avi
Folder 2
56859522.txt
35234443.mp4
23432234.avi
想要的最終結果。
C:\test data
Folder 1
Folder 1.txt
Folder 1.mp4
Folder 1.avi
Folder 2
Folder 2.txt
Folder 2.mp4
Folder 2.avi
這是我正在嘗試修改的代碼
$path = "C:\test data"
Get-ChildItem $path -Directory | Foreach-Object {
$file = $_.Fullname
$file = $file -replace ('4K','')
$file = $file -replace ('\s+\[]','')
Write-Output $file
rename-Item -LiteralPath $_.FullName -NewName $file
Get-ChildItem $path
}
### Rename files in Subfolders
Get-ChildItem $path -Recurse -File | Foreach-Object {
Rename-Item -LiteralPath $_.FullName -NewName
($_.Directory.name) -ErrorAction SilentlyContinue
}
該腳本更改文件的名稱,但不保留擴展名。
C:\test data
Folder 1
Folder 1 (file)
Folder 1 (file)
Folder 1 (file)
Folder 2
Folder 2 (file)
Folder 2 (file)
Folder 2 (file)
任何信息都會有很大幫助,因為我仍在學習如何在 Powershell 中編碼。
我不知道你為什么要這樣做。 我下面的代碼僅在子文件夾中文件名的每個擴展名不同時才有效。
有很多方法可能會出錯,所以我添加了一個錯誤操作。
同樣,我不確定你會得到你想要的,但這會滿足你的要求。
請運行測試。
$path = "C:\test\"
Get-ChildItem $path -Recurse -File | Foreach-Object {
Rename-Item -LiteralPath $_.FullName -NewName ($_.Directory.name + '.' + $_.name.split('.')[1]) -ErrorAction SilentlyContinue
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.