我已经为此苦苦挣扎了两天,因为我不太懂代码。基本上,我得到了一个巨大的zip文件,里面充满了某些人需要访问的报告。解压缩后,它具有完整的目录结构,并且所有文件均为.tar.gz文件。我有一个工作批处理文件,将所有.tar.gz提取到.tar,然后删除.gz。
我现在面临的问题是,在TAR中,所有文件名作为一系列数字都是无意义的。我正在尝试制作一个.bat,它将提取TAR并将内容重命名为与.tar相同的文件名。(每个TAR只有一个文件)。
这是我目前所拥有的:
FOR /D /r %%F in ("*") DO (
pushd %CD%
cd %%F
SET
FOR %%X in (*.tar) DO (
set filename="%%X"
"C:\Program Files\7-zip\7z.exe" x "%%X" -aou -o"%%F\temp\"
REN "%%F\temp\*" %filename%
REN "%%F\temp\*.tar" "*.null"
MOVE "%%F\temp\*.null" "%%F"
RMDIR "%%F\Temp\"
DEL "%%X"
)
popd
)
我尝试将%% F加载到变量中,但这引起了另一组问题。我有一个使用TrID识别和更正文件类型的最终脚本,因此.null值只是临时的。
测试一下-提取TAR文件,将提取的文件重命名为与TAR相同的名称,并以.null结尾,然后删除原始TAR文件,并将重命名的文件移动到原始TAR文件所在的位置,删除临时文件夹。
它应在主文件夹中运行,而所有TAR文件都在其下面的文件夹中。将其复制到另一个文件夹并尝试。
@echo off
FOR /r %%F in (*.tar) DO (
"C:\Program Files\7-zip\7z.exe" x "%%F" -aou -o"%%~dpF\temp\"
REN "%%~dpF\temp\*.*" "%%~nF.null"
DEL "%%F"
MOVE "%%~dpF\temp\%%~nF.null" "%%~dpF"
RMDIR "%%~dpF\temp\"
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句