簡體   English   中英

如何重命名子文件夾或zip文件中的文本文件

[英]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.

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