我百度了一个框架,经过自己的修改已经能初步完成我的需求了,不过还有两个瑕疵,希望有高人来挑战一下:
1.只能处理文件,不能处理文件夹;
2.压缩包内文件名只能处理几种,不能自动通配。
请大神解读我的代码,并完善,谢谢!- @echo off
- rem 拖放/拖拽文件到bat文件图标上实现修改文件扩展名/后缀名
- title 完成后请打开ok.zip
- setlocal enabledelayedexpansion
- >"%tmp%\t.t" echo;!cmdcmdline!
- endlocal
- >"%tmp%\j.j" echo;s=WSH.StdIn.ReadLine().replace(/^^.+?\.(bat^|cmd)"/i,'');
- >>"%tmp%\j.j" echo;WSH.echo(s.replace(/"/g,'').replace(/\s(?=[a-z]:)/ig,'\r\n'));
- set "n="
- for /f "delims=" %%a in ('type "%tmp%\t.t"^|cscript -nologo -e:jscript "%tmp%\j.j"') do (
- set /a n+=1
- echo; "%%a" --^> "%%a1"
- copy "%%a" "%%a1" & "C:\Program Files (x86)\WinRAR\Rar.exe" m -ep1 -r -idq "ok.zip" "%%a1"
- )
- if not defined n (echo;拖放文件或文件夹到bat文件图标上&goto end)
- :end
- "C:\Program Files (x86)\WinRAR\Rar.exe" rn -idq ok.zip *.xls1 *.xls *.doc1 *.doc *.ppt1 *.ppt
- >nul ping -n 5 0
- exit
复制代码
|