@echo off setlocal enabledelayedexpansion set "tempDir=%~dp0temp_unzip" set "totalFiles=0" set "processedFiles=0" for /r %%a in (*.zip) do ( set /a totalFiles+=1 ) for /r %%a in (.zip) do ( mkdir "%tempDir%" 7z x "%%a" -o"%tempDir%" > nul pushd "%tempDir%" for /r %%b in (.csv) do ( set "var=%%~nb" set "newn=!var:GTA_=!" ren "%%b" "!newn!.txt" set /a processedFiles+=1 echo Processing !processedFiles! of !totalFiles! files... ) popd move /Y "%tempDir%*" "." rmdir "%tempDir%" /Q ) echo end...优化这段代码,完成修改文件后删除旧压缩包重新压缩并且新压缩包和旧压缩包同名
时间: 2023-08-07 22:10:45 浏览: 112
以下是优化后的代码,用于完成修改文件后删除旧压缩包重新压缩,并且新压缩包与旧压缩包同名:
```batch
@echo off
setlocal enabledelayedexpansion
set "tempDir=%~dp0temp_unzip"
set "zipDir=%~dp0new_zips"
set "totalFiles=0"
set "processedFiles=0"
for /r %%a in (*.zip) do (
set /a totalFiles+=1
)
for /r %%a in (*.zip) do (
mkdir "%tempDir%"
7z x "%%a" -o"%tempDir%" > nul
pushd "%tempDir%"
for /r %%b in (*.csv) do (
set "var=%%~nb"
set "newn=!var:GTA_=!"
ren "%%b" "!newn!.txt"
set /a processedFiles+=1
echo Processing file !processedFiles! of !totalFiles!...
)
popd
move /Y "%tempDir%\*" ".\"
rmdir "%tempDir%" /Q
7z a -tzip -mx=9 -r -x"!zipDir!\%%~nxa" "!zipDir!\%%~nxa" "*.txt" > nul
del "%%a" > nul
)
echo End of the script.
```
这个优化的代码会将修改后的文件重新压缩为新的压缩包,并删除原始的旧压缩包。新压缩包的名称与原始压缩包相同,并保存在`new_zips`文件夹中。你可以根据你的需求修改`zipDir`变量来指定新压缩包的保存路径。
请确保你已经安装了7-Zip,并将其添加到系统的环境变量中,以便在命令行中可以使用`7z`命令。另外,你需要在脚本所在的目录下创建`temp_unzip`和`new_zips`文件夹,用于临时解压和存储新压缩包。
希望这次的修改能满足你的要求!如果还有其他问题,请随时提问。
阅读全文