<?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: Удаление всех строк в массиве файлов после определенной.]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=7885</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7885&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CMD/BAT: Удаление всех строк в массиве файлов после определенной.».]]></description>
		<lastBuildDate>Wed, 19 Dec 2012 11:49:34 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: CMD/BAT: Удаление всех строк в массиве файлов после определенной.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=67159#p67159</link>
			<description><![CDATA[<div class="quotebox"><cite>Rumata пишет:</cite><blockquote><p>Что будет с внешними командами - не ясно.</p></blockquote></div><p>На внешние, по-моему, не влияет, но ручаться не буду.&nbsp; Так что при перенаправлении вывода CMD/U, вызывающего внешние команды, в файл,&nbsp; весьма вероятночто файл будет в смешанной кодировке.</p><p>Впрочем, в данном случае я имел в виду искличительно внутренние команды: SET/P — для ввода и ECHO — для вывода.</p><p>А какие внешние команды тут могут быть полезны?</p>]]></description>
			<author><![CDATA[null@example.com (wisgest)]]></author>
			<pubDate>Wed, 19 Dec 2012 11:49:34 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=67159#p67159</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Удаление всех строк в массиве файлов после определенной.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=67155#p67155</link>
			<description><![CDATA[<div class="quotebox"><cite>wisgest пишет:</cite><blockquote><p>Но ещё есть вопрос, в какой кодировке файлы.</p></blockquote></div><p>Думаю, пока не стоит засорять голову этим. Пусть для начала основной алгоритм реализует и проверит на нескольких файлах. Хотя вопрос кодировки - непростой. Особенно в винде. </p><div class="quotebox"><cite>wisgest пишет:</cite><blockquote><p>(CMD.EXE /U, по-моему, влияет только на вывод, но не на ввод).</p></blockquote></div><p>Это под вопросом. Потому что сказано про вывод внутренней команды в поток или файл. Что будет с внешними командами - не ясно. </p><div class="codebox"><pre><code>cmd /?
Starts a new instance of the Windows command interpreter
...
/A      Causes the output of internal commands to a pipe or file to be ANSI
/U      Causes the output of internal commands to a pipe or file to be
        Unicode
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Wed, 19 Dec 2012 11:07:50 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=67155#p67155</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Удаление всех строк в массиве файлов после определенной.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=67154#p67154</link>
			<description><![CDATA[<p><strong>Rumata</strong>, да это достаточно очевидный подход.</p><p>Но ещё есть вопрос, в какой кодировке файлы. Если в UTF-16, то я не знаю, как читать файл построчно напрямую (CMD.EXE /U, по-моему, влияет только на вывод, но не на ввод); можно конечно преобразовать в однобайтную кодировку и обратно, но при этом возможны потери.</p><p>В случае UTF-8 затруднений быть не должно (хотя, кто его знает), т.к. в этом случае разделитель строк тот же, что и в однобайтовой кодировке и можно тупо прочесть строку из одного файла и сразу же записать в другой, не вникая, из каких кракозябров она состоит.</p><p>Впрочем, на основании этого пришла мысль насчёт обработки UTF-16 не через однобайтную кодировку, а через UTF-8:<br /></p><div class="codebox"><pre><code>chcp 65001&gt;nul &amp; cmd /c type &quot;utf16_with_bom.txt&quot;&gt;&quot;ut8_without_bom.txt&quot; &amp; chcp 866&gt;nul

rem Обработка ut8_without_bom.txt
rem . . .

::set /p x={Заменить эти скобки на BOM, если он нужен}&gt;&quot;utf16.txt&quot; &lt;nul
chcp 65001&gt;nul &amp; cmd /u /c type &quot;ut8_without_bom.txt&quot;&gt;&gt;&quot;utf16.txt&quot; &amp; chcp 866&gt;nul</code></pre></div><p>Но, возможно, более правильным решением было бы не перебрасывать данные с места на место, а лишь уменьшить размер файла до необходимого, но как это сделать (и не только через CMD), я по неопытности не знаю, так что самому интересно. (Или это всё-таки неправильно с точки зрения дефрагментации?)</p>]]></description>
			<author><![CDATA[null@example.com (wisgest)]]></author>
			<pubDate>Wed, 19 Dec 2012 10:39:32 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=67154#p67154</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Удаление всех строк в массиве файлов после определенной.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=67144#p67144</link>
			<description><![CDATA[<p>Читайте отдельно каждый файл построчно до требуемой (сороковой) строки и одновременно пишите во временный. После этого копируйте временный файл в исходный.</p>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Wed, 19 Dec 2012 07:55:04 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=67144#p67144</guid>
		</item>
		<item>
			<title><![CDATA[CMD/BAT: Удаление всех строк в массиве файлов после определенной.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=67138#p67138</link>
			<description><![CDATA[<p>Добрый день.<br />Имеется куча текстовых файлов в одной папке.Файлы проименованы последовательной&nbsp; нумерацией: 1.txt,&nbsp; 2.txt ..... 1500.txt Примерно 1500 файлов.<br />Необходимо из каждого файла удалить все строки после сороковой.<br />Подскажите как это сделать?</p>]]></description>
			<author><![CDATA[null@example.com (Aleola)]]></author>
			<pubDate>Wed, 19 Dec 2012 04:43:00 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=67138#p67138</guid>
		</item>
	</channel>
</rss>
