我想使用 7ZIP 僅提取具有特定擴展名的檔案,然后相應地重命名其中一個。
此外,我必須使用批處理腳本 (.bat) 執行此操作 - 沒有 powershell 或其他方法。
我目前在 bat 檔案中設定了以下腳本:
@echo off
REM Force UTF-8 to fix some output problems
chcp 65001 > nul
REM Six columns, space delimited
for /f "tokens=6 delims= " %%A in ('"C:\Tools\7za.exe" l VPN.zip -ba -r *\*.ovpn') do (
"C:\Tools\7za.exe" e VPN.zip -ba -r %%A > Test.ovpn
)
PAUSE
輸出:
它提取兩個檔案。
一個是存檔本身(Archive...ovpn) 第二個是我重命名的(Test.ovpn) 第二個存檔,而不是實際重命名的存檔,包含 7Zip 日志...日志如下。
Processing archive: VPN.zip
Extracting folder_name\Original_archive.ovpn
Everything is Ok
Size: 411 Compressed: 5800
它列出了我壓縮存檔中的檔案...
我想要實作的是:
僅將檔案提取到名為“VPN”的檔案夾,而不是檔案夾名稱。
如果檔案包含擴展名 .ovpn,則將該檔案重命名為“Test.ovpn”
如果這個問題看起來很愚蠢,我很抱歉。我是批處理腳本領域的新??手,這是我唯一可以得到幫助的地方......
Thank you for anyone that helps me.
Edit: I updated the questions with the codes i'm using, since on comments they said this question was'nt clear enough...
uj5u.com熱心網友回復:
我通過使用以下代碼解決了它:
REM Extract files in archive
for %%f in (VPN.zip) do (
"C:\Tools\7za.exe" e "%%f" -ba -y -so -r *\*.ovpn 1>C:\VPN\VPN.ovpn 2>nul
"C:\Tools\7za.exe" e "%%f" -ba -y -r *\*.p12 -oC:\VPN >nul
"C:\Tools\7za.exe" e "%%f" -ba -y -r *\*.key -oC:\VPN >nul
) >nul
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/442157.html
標籤:for-loop batch-file cmd zip 7zip
下一篇:為什么在docker-compose.yml中使用空白/空卷允許持久性但使用相對路徑失敗(例如jenkinsgui不可用)?
