Git Product home page Git Product logo

compressed2txt's Introduction

Compressed 2 TXT (formerly File2Batch / res2batch)

Windows 7 support ( PowerShell 2.0 / C# 2.0 )
Very fast encoding and decoding BAT85 and BAT91 classes
Multiple file(s) and folder(s) "Send to" menu selection

preview

What's new in v6.1 final:

GUI option 1: Input decoding key as password - saved in external file output~key.ini
GUI option 2: Randomize decoding key (use with 1)
GUI option 3: BAT91 encoder instead of BAT85 -1.7% size but uses web-problematic chars <*`%\>
GUI option 4: No long lines (adds more overhead)
GUI option 5: No LZX compression (for dense files)
GUI option 6: No txt encoding (cab archive only)

:: prefix to disable syntax highlight in advanced text viewers is always used
encoded text is either split at 128 chars or at <1024 chars to keep lame new windows notepad happy
improved MakeCab ddf generator to handle localized and special characters filenames better
two pass MakeCab to reduce size of filenames tree as well
improved BAT85 encoder / decoder and added BAT91 alternative
improved handling of multiple selected files and folders as source
prompt to accept or change the randomized decoding key
original cmd / powershell hybrid; script-friendlier $choices variable
skip inaccessible files
better test of non-writable dir with Desktop fallback
support for changed locations of default user folders
makecab single pass (2nd one did not reduce size much)
simplified expand function
fix no choices selected, now default
print total processing time

More about option 1: Input decoding key as password

Yes you can definitely put your own / reuse a randomized key, that's what the option is for and it works great!
but it must be strictly 85 chars long if using default BAT85 or 91 chars long if using new BAT91,
and it must use only non-repeating characters from the base dictionary.
In other words, you can only shuffle the characters around, not add new or repeat them (without editing the script)
That's still quite hard to crack: 85 or 91 minus 6 (MSCAB. :D) *factorial combinations!
Reusing the key is a must when adding multiple bundled files in the same script - all have to use the same key!
Script will verify if input key matches the length and base dictionary and if not provide the information

Finding the right options for your target files

Script has plenty of GUI choices to help you determine the best course of action for the specific file(s).
By default script will LZX compress files. This works best with deep directory structure and lots of small files.
For monolithic huge files that are rather incompressible, you should select option 5: No LZX compression (for dense files)
A ridiculous 259.45MB source file "achieving" 98.94% compression is not worth the extra 4min for saving 1.06%

Practical example (click here to show)

Let's say we want something pointless as encoding a huge boot.wim from a mounted iso:
Already know it's incompressible so we can save time, directly selecting option 5: No LZX compression (for dense files)

but just to confirm it, run with just the option 6: No text encoder (cab archive only)

F:\sources\boot.wim
cabonly

Cabinet Maker - Lossless Data Compression Tool

272,062,257 bytes in 1 files
Total files:              1
Bytes before:   272,062,257
Bytes after:    269,188,732
After/Before:            98.94% compression
Time:                   278.01 seconds ( 0 hr  4 min 38.01 sec)
Throughput:             955.66 Kb/second

not very compressible 256.78MB, and took almost 5 mins

let's see how long it takes after also adding option 5: No LZX compression (for dense files)

F:\sources\boot.wim
nocompress,cabonly

Cabinet Maker - Lossless Data Compression Tool

272,062,257 bytes in 1 files
Total files:              1
Bytes before:   272,062,257
Bytes after:    272,062,257
After/Before:           100.00% compression
Time:                    36.97 seconds ( 0 hr  0 min 36.97 sec)
Throughput:            7187.11 Kb/second

259.52MB, and took just 37 seconds, so it makes much more sense to encode with option 5

let's do the actual text encoding with option 5: No LZX compression

F:\sources\boot.wim
nolonglines,nocompress

Cabinet Maker - Lossless Data Compression Tool

272,062,257 bytes in 1 files
Total files:              1
Bytes before:   272,062,257
Bytes after:    272,062,257
After/Before:           100.00% compression
Time:                    40.91 seconds ( 0 hr  0 min 40.91 sec)
Throughput:            6494.56 Kb/second

BAT85 encoding C:\Users\z\Desktop\boot.wim~.bat ...
7.8508956 seconds

334.78MB in ~50s. As expected. For such large files is not worth saving 1-2MB for the cost of extra 4mins

Large files also benefit greatly from not using choice 4: No long lines (more overhead)

F:\sources\boot.wim
nocompress

Cabinet Maker - Lossless Data Compression Tool

272,062,257 bytes in 1 files
Total files:              1
Bytes before:   272,062,257
Bytes after:    272,062,257
After/Before:           100.00% compression
Time:                    40.75 seconds ( 0 hr  0 min 40.75 sec)
Throughput:            6519.90 Kb/second

BAT85 encoding C:\Users\z\Desktop\boot.wim~.bat ...
7.8476116 seconds

325.68MB. When I say more overhead with No long lines - I mean it.
Just unselecting choice 4 you save more than LZX compress, without the extra 4min time (for this file)!

How about using choice 3: BAT91 encoder instead of BAT85

F:\sources\boot.wim
bat91,nocompress

Cabinet Maker - Lossless Data Compression Tool

272,062,257 bytes in 1 files
Total files:              1
Bytes before:   272,062,257
Bytes after:    272,062,257
After/Before:           100.00% compression
Time:                    36.39 seconds ( 0 hr  0 min 36.39 sec)
Throughput:            7300.26 Kb/second

BAT91 encoding C:\Users\z\Desktop\boot.wim~.bat ...
7.6984016 seconds

320.33MB. BAM! The most efficient text encoder using just built-in tools in Windows 7+

Typical usage

Used mostly for sharing configs / scripts / dumps / captures as plain-text on message boards that lack proper file attachments, or to safekeep, run multiple tests and sharing binaries in malware analysis tasks

To prevent copy/paste line-endings issues with the script, use github's clone or download - download ZIP button

Uninstall

Compressed 2 TXT.bat adds itself to the Send To right-click menu for convenience in usage. To remove, just run:

cmd.exe /c del /f/q "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\SendTo\Compressed 2 TXT.bat"  

BAT85 encoder/decoder details

Tweaked version of Ascii85 that works well with batch syntax highlighter used by pastebin and others

Dictionary (can be randomized):

.,;{-}[+](/)_|^=?O123456A789BCDEFGHYIeJKLMoN0PQRSTyUWXVZabcdfghijklmnpqrvstuwxz!@#$&~
BAT85 encoded example of 6.1 release with randomized key bundled for auto-extract:
@echo off & color 07 & chcp 65001 >nul
set "0=%~f0" & powershell -nop -c $f=[IO.File]::ReadAllText($env:0)-split':bat2file\:.*';iex($f[1]); X 1
@pause & exit/b

:bat2file: Compressed2TXT v6.1
$k='efNVd3#S0[R6^T_HlpmA8Xz&D=n|7E5OiI@4PW{}1bQjGC?;rw~.F-q)!+Mvct,YkBxy2Kh9oga$s/LuZJ]U('; Add-Type -Ty @'
using System.IO; public class BAT85 {public static void Dec (ref string[] f, int x, string fo, string key) { unchecked {
byte[] b85=new byte[256];long n=0;int p=0,q=0,c=255,z=f[x].Length; while (c>0) b85[c--]=85; while (c<85) b85[key[c]]=(byte)c++;
int[] p85={52200625,614125,7225,85,1}; using (FileStream o=new FileStream(fo,FileMode.Create)) { for (int i=0;i != z;i++) {
c=b85[f[x][i]]; if (c==85) continue; n += c * p85[p++]; if (p==5) {p=0; q=4; while (q > 0) {q--; o.WriteByte((byte)(n>>8*q));}
n=0;}} if (p>0) {for (int i=0;i<5-p;i++) {n += 84 * p85[p+i];} q=4; while (q > p-1) {q--;o.WriteByte((byte)(n>>8*q));} } } }}}
'@; cd -lit (Split-Path $env:0); function X([int]$x=1) {[BAT85]::Dec([ref]$f,$x+1,$x,$k); expand -R $x -F:* .; del $x -force}

:bat2file:[ Compressed 2 TXT_bat
::DoW4QeeeeeYE3Oreeeee_^N!Geeeeee]3P3e||[f$osWonNhwJe||m=?N1d7eeeeeeedz5rRiS|X+XhvPBH|8iw$L7RIp}I_/_zpe&UC[=Gtx6py=K,C|Dkk{rz,liAi|~eR3+w_BY&Mp5?wTqFYb,X@S71&bBUI~9/jmd[-p$|5B_))uiV(&=F!=yK7/D0wSS+e8lWk6c[C[L7z!Yzx!9Qbd$+}eM-gtONCfC9V-kRPb=_Q2W$;de^CVs{5sCCqm^NDTiM68EErm|65vz_;(oqAE?v9Hir[FpQRcO~3Fa4T]z$38IP_N7efIGj8!gYp&C6|y4/p70)SsieR{G,#.quS[.!jkwK4a$HZ[?NpFcg,c&-S}Zw(rGtf3BzwWkS-up3wJBO;@08qrfTwRC1I[=Aw@p5_r~#[XxbiqQC!U}^efIeP5|[-R_WUeAzQFe?RUbN-v2!tsTC@&y}}S^HEFzTyWB,@;dl6Dd0Jw;=#T9@_n5Nr]lL07}4vqKrhP[C0t[]q.e[0nvMzLqtuc.e|@);6w$8wlqoCh&Jm/M_mfJqkEfV#q()9el]/.|_bvxiAyD[PO[8z8B#5X!VkftJBEjG|;{kJS$8N)K-Sf7O,-BU,!ni26&hE)+)gX8w8!-xxY1^1}i5FC.RFHs{8+K1CoNyb1ovZDdY5y)2c)9QUTWo7u}a&!JR3{/k~|7)f{Y12@x)yuui,RTMA[i?k]dL96QrlRr2e+i,SuG=33xVF6k95+}^Wpf+Dq[2[TL{VjGOoBx-4&A72B+6sP6i?+Si(VWWFIqndcbjL~1MgavkI/kdQRZef.I1ZgjeL}?jW0c,~Aa5QgiM2M}l[78!JX]3hAM1Ps$/n3Q)ETB2r2VB&^Yljf.3OK=sk6Mm.k@M7diOaB{=,-kIFx)|B2/e]z!u4/povuH{=+@OMc@PS@uNIDw!k8O|DF{&&u7mM^|cR{I02@XJV01BruU4t8fb8W/Pc!NzBXDo+G/8vs-RCxHOkq{@t5F;xu7uQ$&s
::~hP)egsB?k$w{Mci{j)/}RPn.m51$?3V4mcEHQ]=VWW]!?{[-#$@Dx}-Mp}mqV$d21J9~Bn5&M-)dG5~qZfa5.6hQML/]s/BP;KaoCxO$u93}Iu2.zipnrx?7g&bM^d0yg;FeE/QbAVE6#cDJi;UfA.#f_2qX;[-)@4Hs4)u,KMOTHPG[H$PQKI~^!=Fjk7{O@{@|y#aJ_&3jeoGPYjxB3Pd$cGcR=P$(84t-fCvqz47o6N3Cews63DRGyGUm5om}bHpOC]#v,v}UMvm.Q/L?Li{r|s3m0;5)#Vt]DN-4^aGqil61lWIO^+MoBC+R=?W!UGKhxwg,6#[hed6!S@=57tm9_G!?dG,mPfk;Q]fzp&uREH9b+g)EYeJCUQ7f)Q,gi^4CGTK]P^~sAhDrKl}7.AOs7?GQ-LF{)hm)0g,Rj+89jH;Ui?$D6W}=K3He[yBwB~@TB)jfX6m^!QEpr83BPlVChFoW4w)9w8xGd0on7b&0WzjUEjmYt3epvz$G]&6XQRX1UjUW&b8NqeecQez9P;tPz53&@DgQa!-uW~E7|7im{kHF/F7l,7rK6[,KacTUNHcToWJC+;r6a.{I$Wi|m77/k(wCII8h(6y)7]n1A+pieJZV/GE!b8AM-Glhl)[6QenDpR#@hgG^[AT/ltA?aW}-o.-f02=iv#E^z{t2D~1kDbc,CH6C2YP_oGML$shb[s!0i_]yVnlBIuh!)n-K.8FsMlF{tGQG(tRAo(odw^Ytb5wsahW.9E8gnVoqD)=k8MXhKcpldFs9B$V^p6pbD13kM#7eB~$WTVO+R?_+[CKiB|3}aUA=PlEYLa$nh/iFFSw3[mgnC[N.R~Kj$o3p(168&/ez,#,sP~GOQ9UIrkWRJiA)vL.#Xa!hwp0C^?i.S!$hh}d-T.X67_(zQB}@oHIp_mv{QMxn-1q9|?J+w2|nBOx-~Wjhq0{nZlJHngdXM|?JfHr3?6In;1ZFGVS5T$v_}=.+bC|[@Z|yT/X){k@qZg^1ZAaB4.
::$T0qS@6YCr=!dz7A2#;dW5m19}&afhBp/AfcS~}|5.=F$TWnSJg{[S)-]!V!sLG.@1m9?6&Z,8l{zof)3{YfmX~2]1HNr|LpMR/L5O?N&V|nj-d5&A0ZSMQ&Fa3}n7u0|7s~#JSBlirAx8~raB@)!nLmJ,Kgzo#O=J.GA)FEL5fpLurCaSW68wgyW};p]M}xC9Jp#[L2|B${^zh{==?=TEc{0O|$EPj#$9XLkVR|A21WoeS@qQtQ^;D]ml,H]}60XVuY@ld~;uyySzpUm!NfmH3G)eXKQH&0UXEJ){0Rw#]W6OZ0Hs$YBe7;QC0m/8v#_]DJ(f6iiOyr,|Zsy8OrrbHfjDJD#.G~$&FO/L~v)FB1XHL0]/[5Q8JNw7lY=}U+IY~n0iRLmRT|/N.v!dHgH,1={(VLqU$Ng0GG[sj[PKjT{D}UeCugfgA3gBse5$+M7mc_$.jQ{+ptVef~DDG{D.-fxnNeO)#?6!oqFGT0wso&Ke$cJL2-9Mg60x;|!N5$JtowC+HqCDct+jPUN+WJA+lqnI9Vxd)+,{~=J=sJ[_cDz/{H#20Z+MSTjq0sbcCi@mH9;d!8+)u7OQyvbyJEyf9IB(Pihpu!1Wo-To)/o5V!/Y9Q;4k}#wbkP}{0kKq#6dL+?hIy.[WXKxogi[HhGd9O-pC|@AY(7.;aDLcl4Uwald|_z+2QSR9EH#V0c6hqwV/,)9}QnqD}vD)5Q(OYc2UA36uZ}X!||cS&sDYb6pl1+P7U5B5XIYR0y#l~8w}I!Do4Y/I2HP|4@O+6{YZlIU;j/1(ZsJ29XH3uHY9c./t#4mwS7xT1?U!nh-mnXAJZiueKaTd-~Y16eDj+h[a/7wX!^X}baBFd|$V3KL]^orXITdA6cR,Wim4tDM)z!UvTdd(c{+}={c?82/6XTP#}f;[jF1+cu$=s#J?{zUwOYlesgrbY4pbs0^t^TFi4lPV}m3).LT]!l/q+KLH9WG(zD$8K0@)Lh()N)1nA2Ob|1RKY)M{h&H=jm&^
::^Jm$gNx,gNayZnYp@Ec&l}2L}V2WvFbLX.}J3o}++|_B&)#ET~VlDL9TajuPO.U!fGQ#X/)]ACv?Nh3GHy}wwKWH8,gH_c9!Ba{TWPgZeDT7l9;JIkz_B2/oi,=58s1lBxVKDYW2Mb-SpF^pkB(wi;oh]]o{U;ry?I;khIP@[-B+xUq0SvZ.Q,MXj^i3W=Ee(4qW9?$SjRL^a6RzDf}u6yJjk;IeBa[eVW6HHTM8T^UHkHwUe&er#qTKYnB2MB@qd_rk-a~[XCpHr5VbAgV^fH?dW(owFt.kVtO}emeF$;uh-,$l^RW)YblC,gOld-F(S7N_H4_$DQ.1!NF4vI]}[IE=V,vG^QVWoEN8)kgI!/T5YlT&a]bZ91|),UIPPT|/ntRizL,(~dTcJuuwGT~fD1DhLXTw6$g~2pHORy(x-OVNAvR7Vcg6|T7u?!4yx&b{36_6_LM0kfP,kEm-1QgS9?EIqzNBJo]t0YbF{b7u|EuOeDCgJ&[Rkxo6Sp0Dr1lTgbCCur0RNe8LC;Hwh5slv3$lk!fnPRFdDZ~NeY;b@_DdyS+_?-w1sJ7,pY@A0pb!+)XHmvsGFKg-I+~f(aHdns,^iag7a7O9#)bTOX~2]D]Ih]s~erJ2I5m$~8ml6Sy!c)o7-EI1[p.evIikpI9^sfsQ3p2PZAFZf$mM@DFe?-2HRjPS0cgB!+w8T3z$tV]poDz02JYhMT]e}lxvFdvcsB3OD!_3Y}=1ola4Nz-O8WL1;rubBP4b2LLfzavhRwXqw]$gb;~,+fbIHRy3WC~pLyK5c5cu;3B{Bd[JS[;{=Z$!.L1R6=q,m.,#-/!(o&dX1(]Ylh?}9OUMlSLSkCG;&EgpR)$lKOjxg6[w@|w6Gv|k2QQE;FfDBtis9!d@g5Pzx^g&WVwMTW.tVQ#swFMZ|o#z}442pw^Q_[m+-}uuVvwm,3jTQ|/x]=tmJlTZGiSBQr29g/|NK~.j!Pg@$=ndDgL06GSj14N3eJF,UxZKO0xK^AmaoX19RZ&
::J=B|XLqg-F~v_=UX{(&7Q9BP,jYytD_)tvvn4o)]y(Z]P3(Kc|P6TZO3q_0)2ZaG$FA3p]I],~dyHonL3fC[Xttcvub1j2#NONg0FTQCXTNzx[$rQ!IO$~+&2]v?w?7}/]s-~g-bep||+#k,2O0;~wO,#F^3htB(kkrm]l&M9kfv9nOipi]+CmMsfwJf[^4f{bep!PZ}fWYCL-r}z.fmHSP|YdGK0n^;j!fxcgE1z}lCp[y!91,BYIpYdiEoH$,-Exk@b9qKXmoGQ|kk07aAe7(ycO@fBFo0yeQBaWs{1V6VaYb+oq1,YAO{|{rG87=dYicP25|OGI)qeet.+T[ch]RYanT3S00fL}vjGGbn1,YkSqQ[w;Qy@Gm0ZQgZ[KkIy?kKc,}$)4sp@,pGXg,hLXqAuDq]uhRn!&]$]ep0&rVwm;WnUx9XK!/2i@au5aVOMmVMP1ADL!^}85{LAk^kD{=Nh9c/lm&{VH[$XX55h@0JL._mI7Lg?n=EzQ_Wy-W~&hBZJ.@yNQ1]@FGfLS/aHXFvbX77lF]lX3dUF90b[7bx.EX~BCE=Rew(Kk&JwqjBZVUot?2bHBTIKnqjW~C8Y]/da2^]E-#o@B@Ww]s|b0x&,ZZmUNq2eJbE1Q!i;7?$pbz[$Hp$04_ddz&[alR$Tzs.v,OOZKlQ!J7~t[-APE~@!$Wo&bNCOL^F(^nBCba3w]&Q2!uAj[i.QuM7gl2Q{vr5n|~R5D&NSa0@omY_mn.1p6=6;;6[NVo02pZPCKVOZqHHMkm46R|0iBLB==iaN8h?@pWeVnU#w/$p/dBkS^[y)XPOu#r.$65qNLV2^Cm9?EMbwJ~6ibWYLdo[(pEbWbtbS/XbK$}+9^K[Y3,PZe#kxwjd1p$4Fow2Fy/vEJ5td|a8vpD84C^7iQ,G;#zP?~,YH97jv|qa-HfHozeA[^3Y;efhf&!tj.V($MXuDXm1Kl2_uz,v;@!#yng&(]Q4OL^x{+}_)q4qAFD0G7D6YeAqPzOY+&x{iU[
::dzi?ianXw4=H9cl,vY}y8byX~TcW#38YEk8z|a7c3VHQ[8#_SdHNE#eI159?kcm{|oomwm;$lH-~6-oC1o8P#f,520O/fm,WjQ;5qkDUcojU(HDyu|azncn2RLnvz~IRTN,/O1XVZz+h_T?}cso+AkSJ_Dbkdm.kXA-;O)Ek+t?hX|g.xtUpfe0a5szT(m,qi{~RZ5Y22ATEyocd[odEPvPH|kBX6adS|l@r~SEWX{z4a3/r,|2bLbOgoK;rH).WT-]G;?]OH&AIXeZJ.aSJ4,)Ip(u2,B6wdzQV6{/|ZrB806[8G_Ot!O7=iOPz+|0X7e1p{Xl2LQ)GgVh1#nZZGW/.&mH,QhP2UyYw}Gak$Da,Asj~on~o=g^r+-3C75unx1b1I_ziF&QwvS^Y3z/?pfc7-GGk~eE^!JLil/_l)&k9XZAKBmj2U-W;c{zHmq+x]IzWb@ULMIT&yjYp9Yuo(3Ymi0oRuykKjY.]UL9M_+XZ_[ID)kLd=[n}kD^(6_5M$#Q;^O3u;;P;lNr[QrHYvP/}Td,T-f]G|kQ5RjY}Yz[2X|YUSf{1Y_yd4lYg3]zwEmZx?|YE6V1w.FO_j;F@U_^no_?ukI29qMPk1Ar|^A=UL5c44xj!=?FV[wCMr~Cr@~8wJ&-TbzC$Z1-I6NsN=8RUylK+k7,.DLEghEf-fOuTh,!N^,BI{g75f}Xa#,L=kOP_)5Z{Z@Lhiy/NM_3dLo)z3_Zeye{bW3[$W}G]-&vG_&VDuoO.yw2?e/roA~y!3/aB37)NX[X1bLE,Vb=WTK!toOZIpOo4XWZw.B0UN~2[~y4{Uek=w?P1XF!;FTLFF@6&H;1Ya~2Q2ElZ1g7[hAg$3NnHw@{rYNDzOs1McbGf|1#qJ0qC@Ya#CFMf}(AJm4^op8@(FT];q}xmR;(ZgEXu4jwTy~sPhe8/#-s7,}WBQq(MavrZ7C9-L^k1z.0ek~l2^1+!5H#=uhA9JjM#M.YwDL4i$bXTyd;-w&5mDVv#^v^.OjR69O4
::6CunH$X00!r/3#l.5}aTJ?V)rk,bT]|jT2)[-yrOJKB@fTz[o5ff|0tHp;l]DscK[ukx)?8UzKT~uF9LyV1TcD7H_,C,]iv{7G#uPqm,hNOXbBe9;f;1IadUn|(6aC}RA=_OrT1/OYz$g11.60M)_f~EHN8/!mJ6d{Gky5?#.RK(7j?I,})7lK33L^)fFj|kQiqGkuujCsJ[Et8;#{X{N-WZc8s.^?+JXApf!t[/uBXmy37E+uzwUqGB~k81{7fkj[LKhu=PCAQ$Nc0pGH1)r;xP|DfcjsSYPpC~Tsvo1/d#4F~@MK!6Y99^40QA3R+UQD1PNpZ4u30=rwz?f^HwVUt-HlZ@F#joF@pCg/TRT@_icXGn6l8EdLkjVZHeP!mngrUKqY;ifF&DtUTq=T7E!~_]?@WMuS6gwZqLe[yF($,#_;Aw&6JM7qGeYa7Fj~[FY@JC&)w+8sUHpGo}z02GT8q,rVRsuqOhclKeLhNsf/QmUk6L)m(m~H1j14P0F|w-=,quQefg1qzx6a1_r$$BZSL&enFhdLz+4wCSUL+9|I66Ao$n0N,~P11@wlrQ^sVVi}npAGKmz6HB@J?Iv=s=L|hvLRr,~&51}kBg_lu?oG&h-7RU$,N7(7[0/5ETQH~LS2?o(0&&$V~FH4vQ8h$IEH!]-H9tTKgflAnZ$fKPpH|9j1y7P=xr$akDgy=3}b/!6;Wd|n7}+ga@voR4av995/Pue9aJ-Tm#CzPsc2PpmJ8d6P_)8!lQN[2V0~e?7u.R/Lk;,?b8T4tk)~D{7AIFYmmT=#(rdZ7}}pB3WJU.[B{RElVTNYl;gwL1G#_G]0rMqsp@-nAa@uT6fY@1UH0k#Uarik3ro?WgT83Yy3Ia6{c=c
:bat2file:]

BAT91 encoder/decoder details

Tweaked version of base91 that works ok with batch syntax highlighter used by pastebin and others.
Same dictionary as BAT85 plus <*`%\> characters that are less safe when posted online.
Generates 1.7% ~ 2% less size than BAT85, so if a BASE85 encode is just above a size limit - 512KB on pastebin for example,
BASE91 might make it fit, but otherwise keep using BASE85.

Dictionary (can be randomized):

.,;{-}[+](/)_|^=?O123456789ABCDeFGHyIdJKLMoN0PQRSTYUWXVZabcfghijklmnpqrstuvwxz!@#$&~E<*`%\>
BAT91 encoded example of 6.1 release with randomized key used as a password:
@echo off & color 07 & chcp 65001 >nul
set "0=%~f0" & powershell -nop -c $f=[IO.File]::ReadAllText($env:0)-split':bat2file\:.*';iex($f[1]); X 1
@pause & exit/b

:bat2file: Compressed2TXT v6.1
$b='Microsoft.VisualBasic';Add-Type -As $b;$k=iex "[$b.Interaction]::InputBox('Key',91)";if($k.Length-ne91){exit}Add-Type -Ty @'
using System.IO; public class BAT91 {public static void Dec (ref string[] f, int x, string fo, string key) { unchecked {
byte[] b91=new byte[256]; int n=0,c=255,v=91,q=0,z=f[x].Length; while (c>0) b91[c--]=91; while(c<91) b91[key[c]]=(byte)c++;
using (FileStream o=new FileStream(fo,FileMode.Create)) { for (int i=0; i != z; i++) { c=b91[ f[x][i] ]; if (c == 91) continue;
if (v == 91) {v = c;} else {v += c * 91; q |= v << n; if ((v & 8191) > 88) {n += 13;} else {n += 14;} v = 91;
do {o.WriteByte((byte)q); q >>= 8; n -= 8;} while (n>7);} } if (v != 91) o.WriteByte((byte)(q | v << n)); } }}}
'@; cd -lit (Split-Path $env:0); function X([int]$x=1) {[BAT91]::Dec([ref]$f,$x+1,$x,$k); expand -R $x -F:* .; del $x -force}

:bat2file:[ Compressed 2 TXT_bat
::gSuP2(((q{<z((((((kc((((((((}bE(I(((G&0Y((tf((yGDe-z[hG(((((((((g,6.LYj@m#DJRN#^R-5Gyn%<7q$xWs)b8_?YGz?%BrfEI(|J.Y)iG(dj|xJY((bc8Rok$1>/3`$tRWD008[gw[b@/fKl-i|2=!w#t?g.]K>,3gGZ9M,.((TpuR[(q{<lZ`S5opZdY<q5nd.sd1hG|G7?_9(E~x(_(~)=#f_<,y#E<?$auA(eRs&&*#xhz\[G~!t>,c^tbE8c_BOVGsr%>6azBCfVDTY?!S,uxCqbAF((F(<p254C3{C$$;+vP65;3c5;PY{x,Y7{@^mna&*u#OG|72Pp_k1;x<LmHH{X)}UikxU>7NWa!e1.)s/0xshbG>d3!MY)]XSg_SI[8H?punA`-`Nt2q<)xc<x6<6f8.eD8G!3Zqb|f?(??s[2ScBXFVR]6-!6YLPzOZ3A_&}`*t^..21t+[ao4IX+bmZEwk?k!e)0.I{3$pj>Sd!8m,@W.<_XvA((6)R[N>}JP-hF@XIfI-7gnwf)4sW34pxo;BV,Dw(+m]r,}yZe3)d\<CEi(@BOx-)>k{7i$lnRf*Z-@FnJ6zDJ>yKVIT.X.T^\VaHUx&xkY.9C2Ky-uG7;,nS7-jX\InJjnNyWmxp>\?E)4cGARV+}@+HY4{,=[yW4KN=q7u]]8SEmNp@-|N%.7OjoQ=H}w*o0hA5az$pBWc]A(`!a#V20@95`};`F)a9FgBIkdz\jU=M6dH5#.E6F1!z$|fFn8<Rf{4vGF/V4+@4%<#]nXy%HeL__aP#tacFc9}DICsWO&B@aMRH}[;*J7{s(mG8^eE2O=rV+kpsAa0$wl^Z/[x.l=6|zhe>y0?8H-C~v.]Ea,#LsdgAc\xG^h|T_XE~<f}8#jZm$h6DHC;JEmS6d_=_iXQ2c=1;lGt[(rsEu_!g~!_Song\^Okk1c]Z.z%*`9FpV#!<wd3Q5l]=*yR9h9T$z!_6h&v./LT\}bCk{HURd9p_1dDmE
::SoB83@ky5L&6O;|m>dA{kQpj~]SgR7oDZ\6JcfS,j@yHg\(Vr(MwfclLbcMv%{\!Q`!.ouD|M>qO7LSNVE^/.hI1CMw36QV_Ac4cJe#vap[7vRQ`[*B3D&+[EmjVE@{F+24,B*_J8BC=i^){2-6F~bvqAN!TLJV,1y]XrP{pssJ/HY+i.Ln#70Q6%`-].5LIGi6MA,.\($?qzP+r(g3s%;\q8V^fy0IFgT<JBmplnO!V`/b)0DNObnzWl4dnj<nk2tLF(VB&T;+Y<\uukKuA}wY5`D#ed&qX<3r`g5,$)%-U^&udT&iXE7UT+ru6M&>BjF_zi2=-g9.f-q+H~N4d4ce7ffOI\}od9|WdS$y||`5?v52vn@-HM@XfX{g1[Yy&Uh44{8*aR7IsO{(7ufJIfRPh]YU@t>&sP~>_h0Dw9h*3>Hrg<aPxW,1K^2\R;>M8ybx0.f2{VD3P!ety=*OOa&UxV.)+V5xNJNIR_f0SVTlQl4m,hb(Jkc-(<_LI>nS46|avx?VL9<waK#W+^t3.o%Nd,U;vm}miTuDIV%RuGZ3EI.l,CY0S^PbgvveuZr%CBtK-q\fNgm#a.NigWDn]}E>t6I\;)chQyn[OIF?6&lC=exhzJB5$s!v3wr(Xyp#M{mp3fk!\Jev/tFX%bH6LE;4yfJ/ODc?wqvd{rEv^U$/wX71#w^zOM0H*?/A~Yp~XTz1$X]}+,11QZ}<m8#F&r,mR,l~m06y}4fo.hF%nZH[\M`cScqi*k<!*lcI9ZlZV4FITVQGakAld]MMXnMpsdnzr^6/_lvXeiNB85>nqKj2C?Jy0t{v[Ok,=h,^qV)8ovhcQg[DSMLW$?%E@|?>+]oQ{ZE[6#a;-ls`toXn.s<7[Lh*vU)Q~wy?~\jbEgi#l7y7MOS=Sf>Iwb5xv8yt<>jQRO_8@4##]UIn^w`#O|3r3XyyRP_]p=[zykA.h6y|U>k>a6~<_8-9>dT9M|\3U!{LUw^X{c)tI,^Lm47B~6UG0r=mi?n?qDk^l
::ex&t5td]K~tQLoMl|U\9\=7dRk;-27?`NKYuq~Z5qieFmppl=NM@BoISbz}46=w&^p$1z#/q?GFM6&w$>{FpLFBKFU`y~xuh.n=d=2OHufo*NC3O^_,u4/M<1~4<5n&jw|-@|0.^.Gt.?c%uNLtInv}RWyV?9vW3C3f[w{HJ`xywLlPaJ9)tk]aIY*O(9Y6HJxL0<\gC&6&F#.U&Y<>&4TR6,yp9^M>tgT!5em?;TDxMx3C461M+KwxnO%TYsUVWo,`s[H9;Emu!v<u7>d]-N[C%)G{>.Ri=v@(WVuM4_!!i_t3pu{-Lu|kiUTmI2pA|))hNs)1P]?knY\|\ZPIhTQ$wk@1FS;%ORp~Nwp/bdm-.YA,D9jL9=@O;Y;x~`z=bsB5+!LplS=ex/Gak%+19<l11{jd>5dkXv1-B3Wk$LhM4n&@[4P~XAd>niTz+Bg1QHUp5\_Nu4oc%5%Y~eroc.jQAKT]#w7^?yIFb$AhqjM7R\Key#L5`C)#=i5nm`XFi6TvyB}5EMZ#e|od~96qK8;TM_OR!zEZ,B*!Oqzm;W>;M{Co<@@3ZiQ|/~UYi*=*H^fV$9&dY@o2@Dm(t*^mr)f{I}Q8,/[i\Z^ntxX)}y`yN<3uW4dqD0hg3OwP59@y}Wac.3w#z,.Ol0bEY9n^cwiKg-_odi>PA10J1)jHD6EJjGc,,o}UV*7/W$PR}UL`Vxg3Ag47qg[X/Kwt0.KldS`KEcSJ#}yf9*QMCS!j!7RUjkpt*N5&FIL6v8^W%#Q]aohmUY\+>qB-uxDl^Ft*}-iv\l>dsHNsBH`^k!#vqS<0}s=J,1Zt7wQ#l4xtaa|5=^{K(x%Qi}BD6T#./iXqLG!+/$Cd1r]qocsgq[f2#Usr)v5Dg~AZ*O$84es@Sad,6IvvNT5/x(sB5*v%$ycOcr[MQ]*RvaFt^%^p3=^&cy.uHBr@4Q9Jb+wU+?b(<m<Lx!gO!+&vLYBn_]@uDV~^d-PkI(A#k]YA/Y>*]N}+-wk#mo^ohKf-]R!Dw
::Hb>~v/~cu0>,]On`ckgdXgo-,1nD`s%e|nGsr+!.Tf/+p3pmRLrUE_z-i%Z\Na%~hz}a\V/=z_J]qk~RA;z;N!*!0[#?1$S}u\vQSpZf?w8?pgxS8-WNY~%%Hsjr5{sG+U]%>wL~{h3i.j#J4XC6dCHRL/#M=Bd/|VTP-/r4T`TN_Uf-+P([KKu2%<R1(2[su-\.e,\O2TEQc`w~<T4yPbO`JgVI</@}Jn&V<@%hds(={+RgXGIn-Wb+5F6p*rG]@S]f+ZPhi0%k3]mLCWMBk2P`~j15^q~_v&J{;GpXYeWs3+v-]CnbX5IrnRf*$(.=@Q+EnDrp$&%m##cC~VG5oY]#VU}<*]fZt*fp&p6W@Afp>g>jU8So90gTs[PFov`z62g6EW&~Nd66gwZW=E9#P_8-XjdJC\S^(U`@g|DG$hH_brBCT3jF1t}sR*wW{Xb\CPptWO3FI/z.|]6}JI-+h7a2G/o_`I}?m1c;/tA\q~860Kt8Q6w3Yz!We5($_f8%Zbx[HTm/Sxf*o[k,aJQ*l-s7|ql~Ss=f;l.Py#wv2X-3&Ai6{4oVKDv/anTafD!Q%+n*n~ZC-o2WiVVSv}t,^K=2vYN[Cl<SK_cnbtIxl+bld$eCq+X8A}dd3EymR~~hYP=r1G-b[Q9{CrbszX0/8<*Xa@mZ.{p6>FQ&ra0m\_+<Pq]HF<2C{ER5r$n;8/xYCrb!A0]9^Go}HmWO!K]rKfSJv&hNwch8WC,OoO6O(8(bpA%)4chF)3mMh+A+cqT4cB6S/sEDcX{?3xc;o#~8[l?HG@fq+8Z)p@z/L80N4$Y[PK0_*.5~UI=/U4Km\FcjJ>u^&4S3tdA.puXI%OZ7=/4>p{47X+ATaH?zE+sWrTB}_dm_]W2[@B](dulXKswi&torW6Z~A2$X3f~@&?T?g7]Sv{d+~egb&*Y]a)N5/]7b(`}ZpOqV9!AOkt,epxp2oV}]C$Lj}TL,#8M)RTuA+Z9VgU^?{-!$t#u75fMR7/rB0<6;($$Sh!0d
::krNpIrv]+CeQRa~Y4jpPf!GJ9qA-0E?)$jiO-|Oy#Jt`#}50|Y=zD2HhL\+Wr-~;OBOC5&Tx]xy6MC|`I~(L,1=@+2Y=\q%S0G+~UxW*6~D7I$$)v+4W//\\I\E`x{P0/!Y/SnrrUXW&Ik)FV/`YMJrm2KL}KM([M%x0QF[W>>cVd#)WJ>6Z`VHbZdy4/<B]?d(yJuJ-`@`R>#P[F]84ze;+Ca%Z;XS`TFL.skj$$QO0mA\Ric459n%nVf\ywY/s[y_|4Io1H_n=;9dx<e{H{#5<>MbGc%%P,^pAK#R}<OeZQ+=w0*l{kXi#|b+!eD+!?V6J7@U}GBlJ1iL,,x1QGV7\vVXR^&()dm04l=aVLyC}-hTk0w$eA[!.]D2Z#f7fID133SME(q4RT5rfD\-hb]uN.*(-`vjlpcIT|*D2y55D\/[wcQ.W-y*0DbZ*bg^#deM+q7hj=OnLO7NbYe%*56|FN]zAx0X]mF$|b@8,!Af/yhhicZ|E8tE_0P?>u[lzqqpQu]zYy[igtyW}/;&\Es6[2~TVq&F)>cuR^r.Xl>i_N7VleHyy[SP<v/tv<5WCi`x%A+QJg.Y~I~Rg]AeJMx*b)9?jR=+u1PGk7aKy8Al/AuC_$!,4`]DGi~}Dr%a+ee{#hSPI!T^G$)y0*#}qx8{g0>zP/8KfLU59KyQ}[})>4Ld;|}FyTSp.Cc5db4ZP.ZMG$|)w0-|gLr,s&9C]9hl7T%_z7[;2e,!gdYS](Niq=%K5,6>2{D{>,K`K&kHDwIk}%^e/)LDQLk?~fd.PT[!JBPcw;bNag{,bEnqkDdmBV\Gi]x|avjh$&}60J=rK8PAsq%vW~rM~p,6/jfBj3d$_(y?rY;aQM+^b-xqeC8Td%CSv}Kp8fbg~Aq.AD2Nmjt;UKJ1g,w5s?)V~Z{ZK9g0.wl,u?^;,I,SguR`l)*(W3D2&.=`hA0OT?`6MKnd9mu.rRY{\84L75U{Vo04Bu?hj)UO7)zY%-t68?9C^I_\Th6,3fnmal~Nz
::+JQ7G@*dNhgm}u>5s{@X6Id,DARxX=^Ki?*qc)~Ee#;,;Kl~AAh`TYZxF2eQ-Bw`vIppv<;XX0r\*[0S[2jjUN.M;Zn.<TXz#I^hLzMGKR0^cAABD\W9JX<J,e|!.`,h7CzFkY/kj2nCTJQoU2poU-Q_`8NJC=\CS/,C+dGZ4Ah>K,`u$)CMn<PI40TbZa23D-L&gEX*@OUMynTW|PDI)^/zc})A3qhoKV$CZY=h{?gVBu/u1}xL<>6GZ0qB`EV$s`xSua{\rB#e]k(D`4PJNT[$hUeB>{>a8EX-t%BXI^6WoYoMa*igi@6UOzYDck5~keKFJqL=q_qW8d*=3.pTNYn01ph<obZ{*[E~Q{$kT+{n_4Px5_3T%@zr)q0j$MkrH6=k#wf)^*F?s$4kX#KjP!<t\>fC;HC%0?wv/SK=f-b~Huq8(((*Z[nCQT+@g`OKB4}LGee&VK$~yq=9GoN|ntZ52~W-l~GPY)#F-z=h(zuurLM^yR9`D5M9*F\Q8cJeqe0zZ`alH;{[Qr~Kof1W0K$Q-IdRt.;#0?eGM)5)%o},TbRg*3jJu<`i[ANElRd}RJ]Hx99Xl1GBIW$J0O^!tlr&b_?@Dxlp\I7Su}LE>p%]OW+L2XnzaL0)NMP`M{$t{K(>Dcd{x{Y\iC1+>xckvOAU-Wg{#7Lkru=azYcJ~g>ZJF(~{1Fk!d%b}j#k`pqtV@)a(e&dJ`H!6?dr.)okHX@_ohT`viN8}#fd_}B^b{bO^CvOrQt;40rGvGGd*+>SDZ]MpiG/V%%nvw;44TxLvK4EfqN#9}?u|H0!%d{HmU`-bwO^Fnl{*hO|hbDVmNE}Eux2Qjj6vxZY$E$fLk}8wfOh+TjZ}[%kgr4-=_-Jzh/}<eQr\`52n!fLEyE0%T7;1E)xp~vZ.AN36&WbQ<IT|C4>pMpMZV93C#pRu8{SiwI%L\jb|?*8fN?J%V~knJfzR5xY0[XyK_\s1/pG^GxfI@si!&A{![F8P4cu2PWX{]P*%HoJG|vWIKBY
::M&!GXQAw`wcy]+,^=KC}e7DY[+SJ8Pxu.8pJUH+bxPRfuuf$2pfI2?DRN>0FuDV,%SeuYqu$<z1`X6wIgmqJ7rI3{lQwGdQ-bbTs|l1uN9k_1$p,1Lb9<i7PGnzwlawZO%p<_P=./Nn<l^pq|3\aUv2~UukF4d6MpzxwwEy=}*UAbob_pqZ~)J}08NG6|4cuNa]\p.&ERM]\lLj51`SM1A3JA;*U1II>Gi!xMYi?ri}m%B}5VN?0>EMz~UsgSkQb{Pf>%KjW{F[ED0ADLw2`pB2}_2)eD?uXQW1J4,!m=)P*piDEkJ(Ia*raKE6*UOgh13C]ayA_HuQtg?zo]Ox9bQ?Ud!V~1*E2\gGc=-TUh@E#QU[5[=f4n]E+.};PZ};P/\tLqoo5>U/?1LNU<N%M;xnTtd/aX*!$~7qP5UBdEvPb=S2~lZ8Oy=Gtm`TY(ZSam_%+zyYCYWH{n+(L&u(S]4yv,p*6gxD2Q1t]~jT>}}}bG/f{^,cP[In..ppzmZr{*Ye,yd~=Mrtp#|*-L#rQL.~WHY&YHz6Fd1@2w+<4tw(|2=sO&{_7,%T_oy_Z9tLKEOro,.HIpyTrz8+AC,3R>.FdN4!a_`{IIZzO<(QBJ>#<}E|Sr+)Lw.|s*o{zBu{Wm&Ie<QekbuFYMjd9nnvz,_$rvvQ2/b?1ooq6sL1`=Z]Q(&x6M;@/Ap6s[7[`{vS,,2\jmKtb/FDODBT!|!_mu)BW~5hX6h$xEdU0]2dQr0I(y^N/8sY
:bat2file:]

Intuitive multiple encoded files support with low overhead

One-liner trigger for multiple bundled files expand in one go:

set "0=%~f0" & powershell -nop -c $f=[IO.File]::ReadAllText($env:0)-split':bat2file\:.*';iex($f[1]); X 2; X 4

Or split into individual triggers, can be anywhere in the batch script:

set "0=%~f0" & powershell -nop -c $f=[IO.File]::ReadAllText($env:0)-split':bat2file\:.*';iex($f[1]); X 4
:: ...  
set "0=%~f0" & powershell -nop -c $f=[IO.File]::ReadAllText($env:0)-split':bat2file\:.*';iex($f[1]); X 2

where X 2; calls the decoding block to expand the 2nd file data, and X 4; - the 4th
Tip: keep only the last :bat2file:] ending tag and skip intermediary ones to use consecutive X parameters.

compressed2txt's People

Contributors

aveyo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

compressed2txt's Issues

Compressed2TXT and WinXP

I recently used your very useful tool to encode files in a windows shell script (cmd).
It's nice to see that a complete folder and it's file content can be compressed/encoded and later decompressed/decoded in the execution directory of the resulting bat file.
However, you stated compatibility since Win7 and upwards.

Just want to inform you, that your ps code also works under windows xp (SP3) environment with some limitations.
Without modification of the header line in the resulting bat file it will break because you try to switch cp UTF8 via CHCP command inside the cmd/bat file. This is an XP bug; documentations are really difficult to find.
Switching to cp 65001 only works inside the console window itself.
Trying to switch to cp 65001 within any cmd/bat file either breaks further processing or maybe lead to really unexpected results.
Replacing the CHCP value with e.g. 1252 works and makes the batfile go again.
However, when trying to decompress/decode a folder and its file content WinXP extracts only the files in the execution directory.
Till Win7 and upwards also the encoded folder is extracted.

I thought this might be some useful information for you to improve your code in the future.
I assume the cp 65001 setting was made to allow ps to handle multibyte chars in file- or folder names correctly.
Although it seems that you have to waive on this setting in xp, as long as anybody knows his current ACP and uses file/folder names to compress/encode that matches the ACP inside the batch/bat file anything should work flawlessly I think.
You might add some checking procedures?
...just some thoughts of mine.

So far, thanks for your really useful code
Zphere

How to change Bat code to pure PowerShell code?

Thank you very much for the hard work of the developers of this project

I want to change the bat code into PowerShell code

My programming level is not good. I tried several times without success, so I want to ask the developer for help. Thank you in advance

In addition, I want to know how to customize the output path, for example: $path ='c:\ABC '

code1---bat

@echo off & color 07 & chcp 65001 >nul
set "0=%~f0" & powershell -nop -c $f=[IO.File]::ReadAllText($env:0)-split':bat2file\:.*';iex($f[1]); X 1
@pause & exit/b

:bat2file: Compressed2TXT v6.1
$k='$&Y5OqzhK#sx]F+~,);@m3CaWT0_/Hb(2ekj8N-pr^6ltQ{VndBGJ|SMEo[cvA?9yZ=f!}.i4XwgRDPuUI1L7'; Add-Type -Ty @'
using System.IO; public class BAT85 {public static void Dec (ref string[] f, int x, string fo, string key) { unchecked {
byte[] b85=new byte[256];long n=0;int p=0,q=0,c=255,z=f[x].Length; while (c>0) b85[c--]=85; while (c<85) b85[key[c]]=(byte)c++;
int[] p85={52200625,614125,7225,85,1}; using (FileStream o=new FileStream(fo,FileMode.Create)) { for (int i=0;i != z;i++) {
c=b85[f[x][i]]; if (c==85) continue; n += c * p85[p++]; if (p==5) {p=0; q=4; while (q > 0) {q--; o.WriteByte((byte)(n>>8*q));}
n=0;}} if (p>0) {for (int i=0;i<5-p;i++) {n += 84 * p85[p+i];} q=4; while (q > p-1) {q--;o.WriteByte((byte)(n>>8*q));} } } }}}
'@; cd -lit (Split-Path $env:0); function X([int]$x=1) {[BAT85]::Dec([ref]$f,$x+1,$x,$k); expand -R $x -F:* .; del $x -force}

:bat2file:[ test_txt
::W4Nj6$$$$$(+uW]$$$$$+]YEt$$$$$$1q8q$__#&Tz,rIC~$0}$__;T$II_5$$$$$$$5DaP6yG&Nk}Qa+uKH[$5iJ-$Yxja$$&vx$$#z&$$#z&$$#z&$q3mZ$$
:bat2file:]

code2---powershell--no't succeed

$_b = @'
::W4Nj6$$$$$(+uW]$$$$$+]YEt$$$$$$1q8q$__#&Tz,rIC~$0}$__;T$II_5$$$$$$$5DaP6yG&Nk}Qa+uKH[$5iJ-$Yxja$$&vx$$#z&$$#z&$$#z&$q3mZ$$
'@

$k='$&Y5OqzhK#sx]F+~,);@m3CaWT0_/Hb(2ekj8N-pr^6ltQ{VndBGJ|SMEo[cvA?9yZ=f!}.i4XwgRDPuUI1L7'; Add-Type -Ty @'
using System.IO; public class BAT85 {public static void Dec (ref string[] f, int x, string fo, string key) { unchecked {
byte[] b85=new byte[256];long n=0;int p=0,q=0,c=255,z=f[x].Length; while (c>0) b85[c--]=85; while (c<85) b85[key[c]]=(byte)c++;
int[] p85={52200625,614125,7225,85,1}; using (FileStream o=new FileStream(fo,FileMode.Create)) { for (int i=0;i != z;i++) {
c=b85[f[x][i]]; if (c==85) continue; n += c * p85[p++]; if (p==5) {p=0; q=4; while (q > 0) {q--; o.WriteByte((byte)(n>>8*q));}
n=0;}} if (p>0) {for (int i=0;i<5-p;i++) {n += 84 * p85[p+i];} q=4; while (q > p-1) {q--;o.WriteByte((byte)(n>>8*q));} } } }}}
'@

function X([int]$x = 1) { [BAT85]::Dec([ref]$_b, $x + 1, $x, $k); expand -R $x -F:* .; del $x -force }

X 1

BAT91 not working

for a large file more than 3mb, it said:

2021-11-04_01-27-43

Neither works for win7 or win10.

but for BAT85, it works.

I need to paste to somewhere do not accept %*, so how do I fix it?

Thank you all!

`Unable to find type [BAT91]: make sure that the assembly containing this type is loaded.
At line:8 char:56

  • '@; cd -Lit($env:CD); function X([int]$x=1){[BAT91] <<<< ::Dec([ref]$f,$x+1,$x,$k); expand -R $x -F:* .; del $x -
    force}
    • CategoryInfo : InvalidOperation: (BAT91:String) [], RuntimeException
    • FullyQualifiedErrorId : TypeNotFound

Microsoft (R) File Expansion Utility Version 6.1.7600.16385
Copyright (c) Microsoft Corporation. All rights reserved.

Can't open input file: 1.

Remove-Item : Cannot find path 'C:_\7z\1' because it does not exist.
At line:8 char:107

  • '@; cd -Lit($env:CD); function X([int]$x=1){[BAT91]::Dec([ref]$f,$x+1,$x,$k); expand -R $x -F:* .; del <<<< $x -
    force}
    • CategoryInfo : ObjectNotFound: (C:_\7z\1:String) [Remove-Item], ItemNotFoundException
    • FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand
      `

Don't compress, no source file specified

Снимок экрана 2024-02-15 084054
Снимок экрана 2024-02-15 084131
After installing Windows 23H2 [Version 10.0.22631.3007], I cannot pack the file. The resulting install_old~.bat contains only service code, and when launched, the unpacker writes: "cannot expand a file onto itself: 1." PowerShell 5.1

How to use it??

I'm new in this thing...
I'm trying to store a vbs file into a batch but I don´t know how to store that vbs for example in the desktop. Any helping hand?
thanks
this issue is the same as the other "how to use it", I accidentally repeated it 😅

How to use it???

I'm new in this thing...
I'm trying to store a vbs file into a batch but I don´t know how to store that vbs for example in the desktop. Any helping hand?
thanks

Error running as Administrator

use Compressed2TXT v6.1
The 1 file it creates is located in C:\Windows\system32

Microsoft (R) File Expansion Utility
Copyright (c) Microsoft Corporation. All rights reserved.

Can't open input file: 1.

del : Cannot find path 'C:\Users\ZYL\Desktop\1' because it does not exist.
At line:8 char:112
+ ... [BAT91]::Dec([ref]$f,$x+1,$x,$k); expand -R $x -F:* .; del $x -force}
+                                                            ~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\Users\ZYL\Desktop\1:String) [Remove-Item], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand

Press any key to continue . . .

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.