<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; CMD/BAT: Удаление всех строк в массиве файлов после определенной.]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7885&amp;type=atom" />
	<updated>2012-12-19T11:49:34Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=7885</id>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Удаление всех строк в массиве файлов после определенной.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=67159#p67159" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[wisgest]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=3850</uri>
			</author>
			<updated>2012-12-19T11:49:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=67159#p67159</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Удаление всех строк в массиве файлов после определенной.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=67155#p67155" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2012-12-19T11:07:50Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=67155#p67155</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Удаление всех строк в массиве файлов после определенной.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=67154#p67154" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[wisgest]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=3850</uri>
			</author>
			<updated>2012-12-19T10:39:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=67154#p67154</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Удаление всех строк в массиве файлов после определенной.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=67144#p67144" />
			<content type="html"><![CDATA[<p>Читайте отдельно каждый файл построчно до требуемой (сороковой) строки и одновременно пишите во временный. После этого копируйте временный файл в исходный.</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2012-12-19T07:55:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=67144#p67144</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[CMD/BAT: Удаление всех строк в массиве файлов после определенной.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=67138#p67138" />
			<content type="html"><![CDATA[<p>Добрый день.<br />Имеется куча текстовых файлов в одной папке.Файлы проименованы последовательной&nbsp; нумерацией: 1.txt,&nbsp; 2.txt ..... 1500.txt Примерно 1500 файлов.<br />Необходимо из каждого файла удалить все строки после сороковой.<br />Подскажите как это сделать?</p>]]></content>
			<author>
				<name><![CDATA[Aleola]]></name>
			</author>
			<updated>2012-12-19T04:43:00Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=67138#p67138</id>
		</entry>
</feed>
