批处理版Base64编码工具
本帖最后由 老刘 于 2017-11-12 14:06 编辑某天楼主发现fc这个命令可以读取文件二进制数据,于是就突发灵感(并且批处理的位运算确实挺好用),写出了这个~
可能大家会吐槽,不是有certutil -encode嘛~
纯属娱乐,纯属娱乐,表在意这些~
只需要一个批处理,就可以轻松EncodeBase64(其实个人感觉比certutil的命令好用很多,可以直接encode字符串而不用塞到文本里面)~
欢迎大家反馈不足,不喜勿喷,谢谢~
还可以在批处理之家看:http://www.bathome.net/thread-43845-1-1.html
用法:
Batname <文件路径 或 字符串>
借助外部命令FC,Fsutil,Findstr
已知BUG:受批处理机制影响,当外参为字符串时,英文感叹号和英文双引号会被丢弃。
请将其写入文本文件并将文件路径传参
支持任何文件编码,无视特殊符号
自己简单写了一个高亮脚本,效果辣鸡,大家暂且将就着看看
————————————————
%老刘原创%
%如有雷同,纯属巧合%
%转载请注明作者昵称%
@ ECHO off & PUSHD %tmp%
SETlocal ENABLEDELAYEDEXPANSION
SET rand=!ranDOm!
IF not exist "%~1" (
SET/P"=%~1"<nul >$_!rand!
SET FilePATh=$_!rand!
) ELSE SET "FilePATh=%~1"
DEL /F $_!rand!_ 2>nul
FOR %%a IN ("!FilePath!") DO ^
Fsutil file creATenew $_!rand!_ %%~za >nul
SET Alphabet=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
SET /A Counter=0
DEL /F $_!rand!_$ 2>nul
(FOR /F "Tokens=2" %%. IN (
'Fc /b "!FilePath!" $_!rand!_ ^| Findstr /R /C:": 00"'
) DO (
SET /A Counter+=1
SET/P"=%%. "
IF !Counter! EQU 3 (
SET /A Counter=0
ECHO.
)
))<nul >$_!rand!_$
DEL /F $_!rand! $_!rand!_ 2>nul
SET Endstr=
(FOR /F "Tokens=1-3" %%A IN ($_!rand!_$) DO (
IF "%%C" EQU "" (
IF "%%B" EQU "" (
SET /A "Bse1=0x%%A>>2,Bse2=(0x%%A&0x3)<<4,Bse3=Bse4=64"
) ELSE SET /A "Bse1=0x%%A>>2,Bse2=((0x%%A&0x3)<<4)|(0x%%B>>4),Bse3=(0x%%B&0xf)<<2,Bse4=64"
) ELSE SET /A "Bse1=0x%%A>>2,Bse2=((0x%%A&0x3)<<4)|(0x%%B>>4),Bse3=((0x%%B&0xf)<<2)|(0x%%C>>6),Bse4=0x%%C&0x3f"
FOR /L %%. IN (1 1 4) DO FOR %%' IN (!Bse%%.!) DO (
IF "!Alphabet:~%%',1!" EQU "=" (
SET "Endstr=!Endstr!="
) ELSE SET/P"=!Alphabet:~%%',1!"
)
))<nul
ECHO.%Endstr%
DEL /F $_!rand!_$ 2>nul 谢谢分享。。。
页:
[1]