<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; CMD/BAT: Уменьшить размер bat-файла]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=11920</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=11920&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CMD/BAT: Уменьшить размер bat-файла».]]></description>
		<lastBuildDate>Thu, 18 Aug 2016 16:18:28 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[CMD/BAT: Уменьшить размер bat-файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=106868#p106868</link>
			<description><![CDATA[<p>Здравствуйте, товарищи.</p><p>Имеется батник, довольно плохо читаемый (снабдил кое-как комментариями), поскольку требуется достичь минимального размера файла.</p><div class="codebox"><pre><code>
@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&gt;nul//получаем файл по tftp
for /f &quot;tokens=*&quot; %%s in (t\f) do (set/a j+=1&amp;set s!j!=%%s&amp;echo.[!j!]	%%s)//разбиваем на строки, нумеруем их, складываем в переменные вида &quot;s18&quot;, и выводим на экран соответствие номера и содержимого строки
set/p f=Number 
set f=!s%f%!//кладём в переменную строку, номер которой ввёл пользователь
%q%&quot;profile &quot;%f% t\p&gt;nul//получаем файл по tftp
set/p c=Cycles 
set/p w=Wait 
echo WScript.Sleep(%w%)&gt;t\t.js//подготавливаем файл для ожидания заданного количества миллисекунд
:L
cscript t\t.js&gt;nul
%q%get_prof t\%i%.t&gt;nul//получаем файл вида &quot;18.t&quot; по tftp (в цикле), складываем во временную папку
set/a i+=1
set/a p=%i%*100/%c%
echo %p%%%//выводим проценты выполнения
if %c% neq %i% goto L//если не последняя итерация - повторяем
echo.&gt;r.txt
for %%i in (t\*.t) do copy/b r.txt+%%i r.txt&gt;nul //копируем все полученные в цикле файлы в один
rd/s/q t//удаляем временную папку
</code></pre></div><p>Вопроса два:<br />-Где можно ещё сэкономить в размере?<br />-Как более правильно сделать задержку с миллисекундной точностью без сторонних средств (ping пробовал, крайне неточно, rundll32 kernel32 sleep - виснет)</p><p>Пока что максимум что могу придумать - заменить символы \r\n в файле на &amp;, объединив некоторые команды в одну строку.</p>]]></description>
			<author><![CDATA[null@example.com (Himmler)]]></author>
			<pubDate>Thu, 18 Aug 2016 16:18:28 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=106868#p106868</guid>
		</item>
	</channel>
</rss>
