![](/img/trans.png)
[英]Need a batch script that will extract all files inside a zipped file inside a single large zipped file
[英]How to attach the zipped folder names to all the files inside it in batch file
我在目录中有一个文件夹,其中有数百个压缩文件夹,其中还包含许多文件。例如,
夹
cs2-20150613-6014-0000- 201071 .zip
cs2-20150613-abc.bin
cs2-20150613-xyz.bin
cs2-20150614-6014-0000- 201066 .zip
cs2-20150614-abc.bin
cs2-20150614-xyz.bin
我要在提取后将文件夹名称的后6位附加到所有文件中,
cs2-20150613-abc.bin- 201071
cs2-20150613-xyz.bin- 201071
谁能建议我如何在批处理文件中完成
@echo off
for /F "tokens=1,2,5 delims=-." %%a in ('dir /B *.zip') do (
ren %%a-%%b-*.bin %%a-%%b-*.bin.%%c
)
该代码假定显示的格式是固定的: cs2-YYYYMMDD-xxxx-xxxx-######.zip
。 如果此格式可能更改,则需要对代码进行调整。
这是我写的一个简短脚本,可以满足您的需求
@echo off & setlocal enabledelayedexpansion
for %%a in (*.zip) do (
7z x -o"%temp%\%%~na" "%%a" > Nul <&2
set "suffix=%%~na"
set "suffix=!suffix:~-6!"
for %%b in (%temp%\%%~na\*) do move /Y "%%b" "%cd%\%%~nxb-!suffix!" > Nul <&2
rd /s /q "%temp%\%%~na"
)
它要求路径上有7z
来解压缩.zip
文件夹的压缩文件。
在后缀中添加了提取的文件,该文件始终是.zip
文件扩展名的前6个字符,而忽略了天气是否为数字。
此代码利用习惯> Nul <&2
将所有输出( stdout
和stderr
)重定向到Nul
文件,从而有效地使程序静音。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.