因为我经常要下载设计素材,下载下来的有时候是psd文件或者ai文件,这个还好,若是遇到了rar/zip压缩包,还得自己解压下……下了一堆压缩包还要手动检查解压,怪麻烦的,不过我看出来规律了,比如我在素材中国下载的素材,文件结构几乎都是这样:

├─素材.rar
└─35029
│ 35029.jpg
│ zpsd3179.jpg
│ zpsd3179.psd
│ 免责声明.txt
│ 访问素材cnn.url

压缩包名我是复制网页标题改了名,那么里面还有一层文件夹是数字文件夹,我想把第二层的jpg和psd相关文件移到上一层来,txt和url这两个不需要可以删掉,若是一个个手动移动那可超累的!于是乎我去年看到AI兴起才想到可以用脚本批处理啊!艾玛我还傻乎乎手动解压!我怎么就没想到提高效率的好办法呢!可能是很少想到用脚本吧……
于是我就去找chatGPT帮忙了!一开始它给我提供了Python脚本,但我试了好几次结果都不行,都没正确理解我的需求,后来我去搜索引擎搜索下关于批处理的方法,发现还有bat脚本可以批处理啊!对啊!用这个不就好了么!让chatGPT写bat批处理脚本就可以了,这次总算输出正确了! 毕竟Python还要调用rarfile库,可能无法成功,像文件处理还是用win系统自带的bat命令编写脚本比较好。

下面放上bat脚本,有需要自取~可根据自己的需求修改,保存为文本另存为批量解压rar.bat文件,放到压缩包的目录下双击运行即可。

rem 批量解压多个rar压缩包并将解压出来的文件夹和文件以该压缩包的名称重命名
rem 适用于素材中国下载的rar包

@echo off
mode con lines=5000
set #=Any question&set @=WX
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
set "exefile=C:\Program Files\WinRAR\WinRAR.exe"

if not exist "%exefile%" (echo;"%exefile%" 未找到&pause&exit)

rem 循环处理当前目录下所有.rar文件
for %%a in (*.rar) do (
echo;"%%a"
rem 使用WinRAR解压当前.rar文件到以其名称为名称的子目录中
"%exefile%" e -y "%%a" ".\%%~na\"

rem 检查是否成功解压,如果子目录存在
if exist ".\%%~na\" (
rem 进入子目录
pushd ".\%%~na"

rem 循环处理子目录中的所有文件和文件夹
for %%c in (*) do (
rem 移除文件和文件夹的只读属性,以便可以重命名或删除
attrib -R "%%c" >nul

rem 检查文件的扩展名是否为.url或.txt
if not "%%~xc"==".url" (
if not "%%~xc"==".txt" (
rem 如果不是.url或.txt文件,则重命名为.rar文件名
ren "%%c" "%%~na%%~xc"
) else (
rem 如果是.txt文件,则直接删除
del "%%c"
)
) else (
rem 如果是.url文件,则直接删除
del "%%c"
)
)

rem 回到上一级目录
popd
)
)

echo;%#% +%$%%$%/%@% %z%

pause
exit

效果如下图,免去了手动的繁琐,提高了效率!耶!!

感谢chatGPT编写的脚本!