irsemi
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору thejustsoul Цитата: Еще бы автоматизировать разбиение на куски по 5к строк, типа как тут, только еще добавить функцию подсчета строк и дописывание в файл.. | Не знаю как в bat, но при помощи JScript это решается так: Код: //Base64 to BAT converter //Usage: cscript //NoLogo b64_to_bat.js /file:"myfile.b64" /limit:500 <input.b64 >output.bat var an = WScript.Arguments.Named; var f = an.Item('file'); if(!f) f = "test.b64"; //Destination file name var l = +an.Item('limit'); if(!l) l = 1000; //Lines per block var i = WScript.StdIn, o = WScript.StdOut; o.WriteLine( '@echo >nul 2>"'+ f +'"' ); while(!i.atEndOfStream) { o.WriteLine( '@(' ); for(var c=0; c<l && !i.atEndOfStream; c++) { var t = i.ReadLine().replace(/[()<>^|&"]/g, '^$&').replace(/%/g, '%%'); o.WriteLine( 'echo'+ (t.match(/\S/)?' ':'.') + t ); } o.WriteLine( ') >>"'+ f +'"' ); } | Использование: Код: cscript //NoLogo b64_to_bat.js /file:"myfile.b64" /limit:500 <input.b64 >output.bat | Где: //NoLogo - скрыть заголовок WSH b64_to_bat.js - наш скрипт. /file: - имя файла, подставляемое в создаваемый батник /limit: - строк в одном блоке (необязательно, по умолчанию 1000) < - исходный текст подаем на stdin > - вывод получаем с stdout Для пустых или состоящих из одних пробелов строк вместо echo подставляется echo. Спецсимволы ()<>^|& экранируются символом ^ Добавлено 18.08.2017: Исправлено экранирование символов % и " | Всего записей: 89 | Зарегистр. 28-11-2016 | Отправлено: 18:40 01-08-2017 | Исправлено: irsemi, 16:27 18-08-2017 |
|