<?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=5968&amp;type=atom" />
	<updated>2011-07-05T14:17:37Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=5968</id>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Расфасовка файлов]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49665#p49665" />
			<content type="html"><![CDATA[<p>а setlocal отменили ?<br />да и вполне живуча конструкция типа set &quot;x=%%~i&quot;</p>]]></content>
			<author>
				<name><![CDATA[smaharbA]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2911</uri>
			</author>
			<updated>2011-07-05T14:17:37Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49665#p49665</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Расфасовка файлов]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49638#p49638" />
			<content type="html"><![CDATA[<p>Стоило немного поиграться с кавычками и символ &#039;&amp;&#039; съедается. Осталось победить символ процента)<br /></p><div class="codebox"><pre><code>@ECHO OFF
for /f &quot;delims=&quot; %%i in (&#039;DIR /A-D /b&#039;) DO (
    if &quot;%%i&quot; NEQ &quot;run.bat&quot; CALL :movFunc &quot;%%i&quot;
)
GOTO:EOF

:movFunc
    set fileName=%1%
    set dirName=&quot;%fileName:~1,1%&quot;
    md %dirName%
    move %fileName% %dirName%</code></pre></div>]]></content>
			<author>
				<name><![CDATA[moggiozzi]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27058</uri>
			</author>
			<updated>2011-07-04T07:33:15Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49638#p49638</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Расфасовка файлов]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49609#p49609" />
			<content type="html"><![CDATA[<p>После блужданий по форуму родилось вот такое решение(и не надо запускать cmd с какими-то ключиками):<br /></p><div class="codebox"><pre><code>@ECHO OFF
for /f &quot;delims=&quot; %%i in (&#039;DIR /A-D /b&#039;) DO (
    if &quot;%%i&quot; NEQ &quot;ScriptName.bat&quot; CALL :movFunc &quot;%%i&quot;
)
GOTO:EOF

:movFunc
    set fileName=%~1%
    set dirName=%fileName:~0,1%
    md %dirName%
    move &quot;%fileName%&quot; &quot;%dirName%&quot;</code></pre></div><p>Из найденных недостатков: не дружит с именами содержащими символ &#039;&amp;&#039;.</p>]]></content>
			<author>
				<name><![CDATA[moggiozzi]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27058</uri>
			</author>
			<updated>2011-07-02T12:35:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49609#p49609</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Расфасовка файлов]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49584#p49584" />
			<content type="html"><![CDATA[<p>Посмотри <a href="http://forum.wincmd.ru/viewtopic.php?t=12895">Переупорядочить папки по первым буквам их имён</a></p>]]></content>
			<author>
				<name><![CDATA[!k]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26608</uri>
			</author>
			<updated>2011-07-01T22:13:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49584#p49584</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[CMD/BAT: Расфасовка файлов]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49583#p49583" />
			<content type="html"><![CDATA[<p>Написал скриптик для расфасовки файлов по первому символу по папкам.<br /></p><div class="codebox"><pre><code>cmd /v:on</code></pre></div><div class="codebox"><pre><code>@echo off
for /f &quot;delims=&quot; %%i in (&#039;DIR /AH/AS/AL/AR/AI/AA /b&#039;) DO (
    set temp=%%i    
    mkdir !temp:~0,1!
@rem    echo move &quot;%%i&quot; !temp:~0,1!
    move &quot;%%i&quot; !temp:~0,1!
)</code></pre></div><p>Не дружит с именами, которые содержат символ &#039;!&#039; (возможно, можно еще кое-где подловить).<br />Как можно вылечить сей недостаток в скрипте, а не сторонними методами (типа группового переименования файлов, как я сделал)?<br />Если есть идеи по улучшению, высказывайте, функциональность нужная). (Например, мне не нравиться отбор файлов DIR /AH/AS/AL/AR/AI/AA /b).</p><p>Параметр /v : on включает связывание времени выполнения, из-за чего символ &#039;!&#039; начинает обрабатываться как &quot;особый&quot;. <br />Если же запустить без него то переменная temp получает значение только один раз(а не при каждой итерации, как говорит интуиция(об этом написано в set /?)). Тогда не получается выделить один символ из переменной %%i, надо сделать что-то наподобие %i:~0,1%, но так не работает (значение переменной берется %%i).<br />&#039;DIR /AH/AS/AL/AR/AI/AA /b&#039; заменяется &#039;DIR /A-D /B&#039;.</p>]]></content>
			<author>
				<name><![CDATA[moggiozzi]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27058</uri>
			</author>
			<updated>2011-07-01T20:47:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49583#p49583</id>
		</entry>
</feed>
