1

Тема: CMD/BAT: Уменьшить размер bat-файла

Здравствуйте, товарищи.

Имеется батник, довольно плохо читаемый (снабдил кое-как комментариями), поскольку требуется достичь минимального размера файла.


@echo off
md t//временная папка
setlocal enabledelayedexpansion
set q=tftp -i 192.168.1.1 get //шаблонный кусок tftp-запроса
set c=1
set w=0
%q%get_func t\f>nul//получаем файл по tftp
for /f "tokens=*" %%s in (t\f) do (set/a j+=1&set s!j!=%%s&echo.[!j!]	%%s)//разбиваем на строки, нумеруем их, складываем в переменные вида "s18", и выводим на экран соответствие номера и содержимого строки
set/p f=Number 
set f=!s%f%!//кладём в переменную строку, номер которой ввёл пользователь
%q%"profile "%f% t\p>nul//получаем файл по tftp
set/p c=Cycles 
set/p w=Wait 
echo WScript.Sleep(%w%)>t\t.js//подготавливаем файл для ожидания заданного количества миллисекунд
:L
cscript t\t.js>nul
%q%get_prof t\%i%.t>nul//получаем файл вида "18.t" по tftp (в цикле), складываем во временную папку
set/a i+=1
set/a p=%i%*100/%c%
echo %p%%%//выводим проценты выполнения
if %c% neq %i% goto L//если не последняя итерация - повторяем
echo.>r.txt
for %%i in (t\*.t) do copy/b r.txt+%%i r.txt>nul //копируем все полученные в цикле файлы в один
rd/s/q t//удаляем временную папку

Вопроса два:
-Где можно ещё сэкономить в размере?
-Как более правильно сделать задержку с миллисекундной точностью без сторонних средств (ping пробовал, крайне неточно, rundll32 kernel32 sleep - виснет)

Пока что максимум что могу придумать - заменить символы \r\n в файле на &, объединив некоторые команды в одну строку.