[英]How to rename text files within subfolders or zip files
我有多個具有唯一名稱的zip文件夾,但是文件夾中的文件都具有相同的名稱。 我需要重命名文本文件以匹配文件夾名稱。 我還需要將那些重命名的文本文件移至工作目錄。
例如,我有以下內容:
name1.zip解壓縮為name1 \\ AncestryDNA.txt,但需要為name1.txt。 name2.zip解壓縮為name2 \\ AncestryDNA.txt,但需要為name2.txt。
我使用7-Zip 19.00解壓縮文件。 我解壓縮了文件,因為我還需要從每個解壓縮的文本文件中刪除以“#”開頭的行,以供其他程序使用。
我從Windows批處理文件開始,在包含我的zip文件的數據目錄中運行以下命令:
echo解壓縮文件...
forfiles /p Data /m *.zip /c "cmd /c 7z x *.zip -o* -y"
將zip文件移動到存儲中...
forfiles /p Data /m *.zip /c "cmd /c move @file ..\StorageZipFiles"
echo修剪除AncestryDNA文本文件中的標頭以外的所有內容...
forfiles /p Data /s /m *.txt /c "cmd /c sed -i '/#/d' @file"
這些工作,但我無法使重命名功能正常工作。
我嘗試在解壓縮之前重命名文件...
forfiles /p Data /s /m *.zip /c "cmd /c 7z rn @file @fname\AncestryDNA.txt @fname\@fname.txt"
和...
forfiles /p Data /s /m *.zip /c "cmd /c 7z a rn @file @fname\AncestryDNA.txt @fname\@fname.txt"
然后解壓縮...
forfiles /p Data /s /m *.txt /c "cmd /c ren @file @fname.txt"
但是我無法成功將文件夾名稱保留到文件夾內的文本文件中。
嘗試在解壓縮后重命名文件時,命令提示符不會產生錯誤消息。 它將AncestryDNA.txt的舊文件名嵌套在文件夾name1,name2等中。
解壓縮后重命名文件的另一種方法是此powershell腳本。
Get-ChildItem -recurse -path Data *.txt | rename-item -path {$_.fullname} -newname {$($_ | split-path | split-path -leaf ) + ".txt"} -whatif
它有兩個交錯的Powershell管道,一個管道獲取所有正確的目錄,第二個管道提取用於重命名文件的文件夾的名稱。 請注意,出於安全考慮,我在此末尾添加了-whatif。 如果輸出看起來不錯,則刪除-whatif以實際更改文件名。 仍然最好先在測試數據上對此進行測試,然后再使用實際數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.