<?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=5364</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5364&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CMD/BAT: Копирование файла в неизвестную папку».]]></description>
		<lastBuildDate>Fri, 28 Nov 2014 08:24:03 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: CMD/BAT: Копирование файла в неизвестную папку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88759#p88759</link>
			<description><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Никуда ничего «подгружать» и «преобразовывать» не надо. Достаточно просто использовать нормальный редактор с поддержкой кодировки OEM/866.</p></blockquote></div><br /><p>или:</p><br /><div class="codebox"><pre><code>@echo off
setlocal

&gt;nul chcp 1251

set &quot;sFolder=C:\test&quot;
set &quot;sFile=%~dp0Важный файл.txt&quot;

for /f &quot;delims=&quot; %%i in (&#039;&quot;2&gt;nul dir /ad/b &quot;%sFolder%&quot;&quot;&#039;) do (
 for /f &quot;delims=&quot; %%j in (&#039;&quot;2&gt;nul dir /ad/b &quot;%sFolder%\%%i&quot;&quot;&#039;) do (
  &gt;nul copy /y &quot;%sFile%&quot; &quot;%sFolder%\%%i\%%j&quot;
  )
 )

endlocal
exit /b 0</code></pre></div><br /><p>.</p>]]></description>
			<author><![CDATA[null@example.com (Yury)]]></author>
			<pubDate>Fri, 28 Nov 2014 08:24:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88759#p88759</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Копирование файла в неизвестную папку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88757#p88757</link>
			<description><![CDATA[<p>Никуда ничего «подгружать» и «преобразовывать» не надо. Достаточно просто использовать нормальный редактор с поддержкой кодировки OEM/866.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Fri, 28 Nov 2014 07:57:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88757#p88757</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Копирование файла в неизвестную папку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88754#p88754</link>
			<description><![CDATA[<p>Ну раз тут такое пошло , еще один интересный вопрос , предположим что файлик называется не &quot;1.txt&quot;&nbsp; &nbsp;а&nbsp; &quot;Важный файл.txt&quot;<br />Ранее для того что бы .bat корректно работал приходилось подгружать код в Sublime Text 2.0.2 и преобразовывать (Windows 866).<br />Возможно ли совершить данные действия минуя данную прогу?</p>]]></description>
			<author><![CDATA[null@example.com (PavelR)]]></author>
			<pubDate>Fri, 28 Nov 2014 06:09:20 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88754#p88754</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Копирование файла в неизвестную папку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88703#p88703</link>
			<description><![CDATA[<div class="quotebox"><cite>Yury пишет:</cite><blockquote><p>…так как первая оперируют фиксированным списком, созданным в начале работы такой конструкции, а вторые оперируют по очереди всеми подходящими элементами набора, зачастую созданными уже в результате работы этой самой конструкции. Много раз мне приходилось это объяснять в ответах на вопросы вроде такого: &quot;Почему пакетный файл переименовывает файлы по второму кругу?&quot;</p></blockquote></div><p>Именно. Особым шиком тут является попадание под маску коротких имён файлов с кириллическими именами <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" />.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Thu, 27 Nov 2014 00:12:53 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88703#p88703</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Копирование файла в неизвестную папку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88702#p88702</link>
			<description><![CDATA[<div class="quotebox"><cite>Alecsis пишет:</cite><blockquote><div class="codebox"><pre><code>rem imho, конструкция For /R тут вполне в тему</code></pre></div></blockquote></div><br /><br /><br /><p><strong>1</strong>. Да ну? А Вы не заметили, что файл нужно копировать только в &quot;дальние папки&quot;, а не во все?</p><p>Если уж использовать эту конструкцию для решения данной и других подобных задач, то предложу для обсуждения такой способ:</p><div class="codebox"><pre><code>@echo off
setlocal

set &quot;sFolder=C:\test&quot;
set &quot;sFile=%~dp01.txt&quot;

:: Устанавливаем нужный уровень вложенности обрабатываемых каталогов.
set level=2

:: Получаем регулярное выражение для поиска папок данного уровня вложенности
::  и записываем его во временный файл (иначе у команды &quot;findstr&quot; проявится очередной баг).
set reg_expr=
for /l %%i in (1 1 %level%) do (
 call set reg_expr=%%reg_expr%%[\\][\\]*\\
 )
echo ^^\&quot;%reg_expr:[\\]=[^\\]%\&quot;$&gt;&quot;%~dp0.tmp&quot;

pushd &quot;%sFolder%&quot;
for /r %%i in (.) do (
 rem Убираем финальные точку и слеш, но слеш возвращаем.
 set x=%%~fi\
 rem Из полных имён каталогов убираем часть, являющуюся полным именем корневого каталога,
 rem  и следующий за ней слеш;
 rem  в выводе результата командой &quot;echo&quot; ищем каталоги с заданным уровнем вложенности и,
 rem  если находим, копируем в них файл.
 for /f &quot;delims=&quot; %%j in (&#039;
  call echo &quot;%%x:%cd%\=%%&quot;^| findstr /g:&quot;%~dp0.tmp&quot;
 &#039;) do (
  &gt;nul copy /y &quot;%sFile%&quot; %%j
  )
 )
popd

del &quot;%~dp0.tmp&quot;

endlocal
exit /b 0</code></pre></div><p>.</p><br /><br /><p><strong>2</strong>. Конструкция &quot;<em>for /f</em>&quot; во многих случаях предпочтительнее конструкций &quot;<em>for /r</em>&quot;, &quot;<em>for /d</em>&quot;, &quot;<em>for /d /r</em>&quot; и просто &quot;<em>for</em>&quot;, так как первая оперируют фиксированным списком, созданным в начале работы такой конструкции, а вторые оперируют по очереди всеми подходящими элементами набора, зачастую созданными уже в результате работы этой самой конструкции. Много раз мне приходилось это объяснять в ответах на вопросы вроде такого: &quot;Почему пакетный файл переименовывает файлы по второму кругу?&quot;</p><p>Пример:</p><div class="codebox"><pre><code>@for /l %%i in (1 1 100) do @type nul&gt;&quot;%%i.txt&quot;

@for %%i in (*.txt) do @ren &quot;%%i&quot; &quot;%%~ni_new.txt&quot;</code></pre></div><p>.</p><p>В результате увидите файл, переименованный дважды: &quot;<em>1_new_new.txt</em>&quot;.</p>]]></description>
			<author><![CDATA[null@example.com (Yury)]]></author>
			<pubDate>Thu, 27 Nov 2014 00:03:37 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88702#p88702</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Копирование файла в неизвестную папку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88683#p88683</link>
			<description><![CDATA[<p>А вот ещё работающий вариант, без dir и вложенных циклов:<br /></p><div class="codebox"><pre><code>
@Echo OFF
SetLocal
Set &quot;FOLDER=D:\Test&quot;      &amp; rem целевая папка
Set &quot;FILE=%~dp0\1.txt&quot;    &amp; rem предполагаем, что копируемый файл в той же папке, что и сам .CMD

rem imho, конструкция For /R тут вполне в тему
rem
Pushd &quot;%FOLDER%&quot;          
For /R %%d In (.) Do Copy /y &quot;%FILE%&quot; &quot;%%d\*&quot;
Popd
EndLocal
Exit /B
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Alecsis)]]></author>
			<pubDate>Wed, 26 Nov 2014 08:26:07 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88683#p88683</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Копирование файла в неизвестную папку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88666#p88666</link>
			<description><![CDATA[<p>Огромное Спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (PavelR)]]></author>
			<pubDate>Tue, 25 Nov 2014 11:40:07 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88666#p88666</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Копирование файла в неизвестную папку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88660#p88660</link>
			<description><![CDATA[<div class="codebox"><pre><code>@echo off
setlocal

set &quot;sFolder=C:\test&quot;

for /f &quot;delims=&quot; %%i in (&#039;&quot;2&gt;nul dir /ad/b &quot;%sFolder%&quot;&quot;&#039;) do (
 for /f &quot;delims=&quot; %%j in (&#039;&quot;2&gt;nul dir /ad/b &quot;%sFolder%\%%i&quot;&quot;&#039;) do (
  &gt;nul copy /y &quot;1.txt&quot; &quot;%sFolder%\%%i\%%j&quot;
  )
 )

endlocal
exit /b 0</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Yury)]]></author>
			<pubDate>Tue, 25 Nov 2014 09:35:13 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88660#p88660</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Копирование файла в неизвестную папку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=88659#p88659</link>
			<description><![CDATA[<p>Добрый день!<br />Может сможете помочь. Ситуация похожая. Но с одним &quot;но&quot; , внутри папки test помимо&nbsp; папок с неизвестным именем,&nbsp; в каждой из них есть подпапки порядка 5-6 шт.<br />Как организовать все так , что бы файлик 1.txt помещался во все эти назовем их &quot;дальние папки&quot;</p><p>Приложил картинку как я это вижу ... художник из меня так себе <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />&nbsp; <br /><span class="postimg"><img src="http://i.imgur.com/P69PVPO.png" alt="http://i.imgur.com/P69PVPO.png" /></span></p><p>Вместо Фамилий так же папки с неизвестным именем.</p>]]></description>
			<author><![CDATA[null@example.com (PavelR)]]></author>
			<pubDate>Tue, 25 Nov 2014 07:58:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=88659#p88659</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Копирование файла в неизвестную папку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=43545#p43545</link>
			<description><![CDATA[<p>Например, так:<br /></p><div class="codebox"><pre><code>@echo off
setlocal

set sFolder=c:\test

for /f &quot;usebackq&quot; %%i in (`dir /b /o:n /a:d &quot;%sFolder%&quot;`) do copy /y &quot;1.txt&quot; &quot;%sFolder%\%%i\&quot;&gt;nul

endlocal
exit /b 0</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Tue, 11 Jan 2011 17:56:20 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=43545#p43545</guid>
		</item>
		<item>
			<title><![CDATA[CMD/BAT: Копирование файла в неизвестную папку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=43538#p43538</link>
			<description><![CDATA[<p>Как можно скопировать файл 1.txt в директорию C:\test в которой есть много папок с неизвестным именем, файл должен копироваться во все эти папки и если такой файл существует заменить.</p>]]></description>
			<author><![CDATA[null@example.com (Skrask)]]></author>
			<pubDate>Tue, 11 Jan 2011 12:29:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=43538#p43538</guid>
		</item>
	</channel>
</rss>
