<?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=9294&amp;type=atom" />
	<updated>2014-02-24T00:24:12Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=9294</id>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Поменять половинки файла местами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=80332#p80332" />
			<content type="html"><![CDATA[<p>Тут не каждый редактор «потянет» строку длиной за 200000 символов <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" />.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2014-02-24T00:24:12Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=80332#p80332</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Поменять половинки файла местами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=80328#p80328" />
			<content type="html"><![CDATA[<p>Отредактировал длинный код, устранив имевшуюся неточность.</p>]]></content>
			<author>
				<name><![CDATA[Yury]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30230</uri>
			</author>
			<updated>2014-02-23T20:56:41Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=80328#p80328</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Поменять половинки файла местами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=80324#p80324" />
			<content type="html"><![CDATA[<p>Спасибо за помощь. В общем, похоже что простого решения не получается.</p>]]></content>
			<author>
				<name><![CDATA[Arigato]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29277</uri>
			</author>
			<updated>2014-02-23T19:20:51Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=80324#p80324</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Поменять половинки файла местами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=80323#p80323" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Yury пишет:</cite><blockquote><div class="quotebox"><cite>Arigato пишет:</cite><blockquote><p>потянет ли батник такую длинную строку?</p></blockquote></div><p>???</p></blockquote></div><p>Не &quot;тянет&quot;.</p><br /><p>А такой вариант работает со строками, практически, любой длины:</p><div class="codebox"><pre><code>@echo off
set input_file=input.txt
set output_file=output.txt
&gt;nul copy nul 0.tmp
fc /lb1000000 0.tmp &quot;%input_file%&quot;| more +3|&gt;input.tmp find /v &quot;*****&quot;
del 0.tmp
for /f &quot;tokens=1* delims=:&quot; %%i in (&#039;
 findstr /nc:&quot; 1 &quot; input.tmp
&#039;) do (
 set n=%%i
 set string=%%j
)
set string=%string: 1 =$%
(
for /f &quot;tokens=2 delims=$&quot; %%i in (&quot;%string%&quot;) do (
 &lt;nul set /p=1 %%i
)
for /f &quot;tokens=1* delims=:&quot; %%i in (&#039;
 findstr /n .* input.tmp
&#039;) do (
 if %%i gtr %n% (
  &lt;nul set /p=%%j
))
for /f &quot;tokens=1* delims=:&quot; %%i in (&#039;
 findstr /n .* input.tmp
&#039;) do (
 if %%i lss %n% (
  &lt;nul set /p=%%j
))
for /f &quot;tokens=1 delims=$&quot; %%i in (&quot;%string%&quot;) do (
 &lt;nul set /p=%%i
))&gt;&quot;%output_file%&quot;
del input.tmp</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Yury]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30230</uri>
			</author>
			<updated>2014-02-23T19:09:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=80323#p80323</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Поменять половинки файла местами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=80319#p80319" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>cmd /v:on /c &quot;set /p string=&lt;input.txt&amp; for /f &quot;tokens=1,2 delims=$&quot; %i in (&quot;!string: 1 =$!&quot;) do @&lt;nul set /p=1 %j %i&quot;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Yury]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30230</uri>
			</author>
			<updated>2014-02-23T16:40:09Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=80319#p80319</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Поменять половинки файла местами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=80313#p80313" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Arigato пишет:</cite><blockquote><p>Вот только 1 может встречаться и в других числах как отдельная цифра, а разделитель ведь может содержать только один символ, а не последовательность.</p></blockquote></div><div class="codebox"><pre><code>set string=57 931 4 1 123 9 78
set string=%string: 1 =$%</code></pre></div><br /><div class="quotebox"><cite>Arigato пишет:</cite><blockquote><p>потянет ли батник такую длинную строку?</p></blockquote></div><p>???</p>]]></content>
			<author>
				<name><![CDATA[Yury]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30230</uri>
			</author>
			<updated>2014-02-23T15:07:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=80313#p80313</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[CMD/BAT: Поменять половинки файла местами]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=80312#p80312" />
			<content type="html"><![CDATA[<p>В текстовом файле есть набор целых чисел через пробелы, например:<br />57 931 4 1 123 9 78</p><p>Чисел в файле не более 100000. Известно, что в файле всегда присутствует число 1, позиция может быть любой. Надо получить новый текстовый файл, где бы сначала шла та часть, что от 1 и до конца файла, а далее начало файла, то, что до 1. В нашем примере надо получить такое:</p><p>1 123 9 78 57 931 4</p><p>Если появятся лишние пробелы - не страшно. </p><p>Вот как бы это сделать, причем в рамках одной команды (то есть чтобы можно было запускать прямо из командной строки)?</p><p>Можно было бы считать файл в строку (потянет ли батник такую длинную строку?), в for разделить по 1. Вот только 1 может встречаться и в других числах как отдельная цифра, а разделитель ведь может содержать только один символ, а не последовательность.</p>]]></content>
			<author>
				<name><![CDATA[Arigato]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29277</uri>
			</author>
			<updated>2014-02-23T14:43:18Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=80312#p80312</id>
		</entry>
</feed>
