<?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=16644&amp;type=atom" />
	<updated>2021-10-12T07:56:46Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=16644</id>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: копирование файла во вложенные подпапки]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=150021#p150021" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>mike.sunday19 пишет:</cite><blockquote><p>Правильно ли я понял, что этот код надо засунуть в файл .bat и сохранить в oem 866 кодировке?</p></blockquote></div><p>Да, в файл .bat, кодировка 866.</p><p>С новыми путями у меня также всё копирует, вряд ли в путях дело, разве что в названиях папок на вашем диске есть латинская буква, похожая на кириллицу (o, a), либо концевой пробел.<br />Я создавал структуру папок, копируя их названия из сообщения.<br />У4ё6а - кириллица и цифры 4, 6. WSH - латиница. Клиенты, Файл - кириллица.</p><p>Я немного видоизменил .bat-файл, чтобы он выводил больше информации.<br />И в конце поставил ожидание нажатия клавиши, чтобы при запуске из Проводника окно .bat-файла не закрывалось сразу после выполнения.<br />Пробуйте - что выводится?</p><div class="codebox"><pre><code>@echo on &amp; title %~nx0 &amp; SetLocal EnableExtensions EnableDelayedExpansion

rem Файл для копирования:
set &quot;sFilePdf=D:\У4ё6а\WSH\Файл\forma.pdf&quot;

rem Папка Юр.лица\
set &quot;sFolderUL=D:\У4ё6а\WSH\Клиенты\&quot;

rem Папка Постоянный договор\
set &quot;sFolderPD=Постоянный договор\&quot;

for /d %%a in (&quot;!sFolderUL!*&quot;) do (
  echo. &quot;!sFilePdf!&quot; -^&gt; &quot;%%~a\!sFolderPD!&quot;
  xcopy &quot;!sFilePdf!&quot;     &quot;%%~a\!sFolderPD!&quot; /y &gt;nul
)

pause

EndLocal
exit /b
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[andypetr]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40320</uri>
			</author>
			<updated>2021-10-12T07:56:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=150021#p150021</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: копирование файла во вложенные подпапки]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=149969#p149969" />
			<content type="html"><![CDATA[<p>Правильно ли я понял, что этот код надо засунуть в файл .bat и сохранить в oem 866 кодировке?<br />Я сделал так. Не работает.<br />Попробовал сохранить в ansi. Аналогично.<br />Правда , должен отметить что пути я поставил другие. Т.к. пути что я в заголовке темы указал - это с работы. На работе я не успел проверить код. И сейчас я опробовал на домашнем ПК. <br />Кидаю код с путями дом.ПК:<br /></p><div class="codebox"><pre><code>
@echo off &amp; title %~nx0 &amp; SetLocal EnableExtensions EnableDelayedExpansion

rem Файл для копирования:
set &quot;sFilePdf=D:\У4ё6а\WSH\Файл\forma.pdf&quot;

rem Папка Юр.лица\
set &quot;sFolderUL=D:\У4ё6а\WSH\Клиенты\&quot;

rem Папка Постоянный договор\
set &quot;sFolderPD=Постоянный договор\&quot;

for /d %%a in (&quot;!sFolderUL!*&quot;) do (
	xcopy &quot;!sFilePdf!&quot; &quot;%%~a\!sFolderPD!&quot; /y &gt;nul
)

EndLocal
exit /b
</code></pre></div><p>Структура папок:<br />D:\У4ё6а\WSH\Клиенты\Федорина Анна\Постоянный договор<br />D:\У4ё6а\WSH\Клиенты\Чижиков Иван\Постоянный договор</p><p>Вроде все верно. Но почемуто не работает</p>]]></content>
			<author>
				<name><![CDATA[mike.sunday19]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42017</uri>
			</author>
			<updated>2021-10-08T20:16:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=149969#p149969</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: копирование файла во вложенные подпапки]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=149959#p149959" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>
@echo off &amp; title %~nx0 &amp; SetLocal EnableExtensions EnableDelayedExpansion

rem Файл для копирования:
set &quot;sFilePdf=D:\Файл\forma_dog.pdf&quot;

rem Папка Юр.лица\
set &quot;sFolderUL=D:\Юр.лица\&quot;

rem Папка Постоянный договор\
set &quot;sFolderPD=Постоянный договор\&quot;

for /d %%a in (&quot;!sFolderUL!*&quot;) do (
  xcopy &quot;!sFilePdf!&quot; &quot;%%~a\!sFolderPD!&quot; /y &gt;nul
)

EndLocal
exit /b
</code></pre></div><p>Копирование происходит в папки первого уровня вложенности.<br />В основной строке (xcopy &quot;!sFilePdf!&quot; &quot;%%~a\!sFolderPD!&quot; /y &gt;nul):<br /><strong>/y</strong> подавляет запрос на перезапись существующего файла,<br /><strong>&gt;nul</strong> подавляет вывод сообщений на экран.</p>]]></content>
			<author>
				<name><![CDATA[andypetr]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40320</uri>
			</author>
			<updated>2021-10-08T05:01:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=149959#p149959</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[CMD/BAT: копирование файла во вложенные подпапки]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=149952#p149952" />
			<content type="html"><![CDATA[<p>Вот есть такой код на vbs на копирование файла в вложенные подпапки:<br /></p><div class="codebox"><pre><code>
Dim fso, fold1, fol1, foc1, fpath, file1
Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set file1 = fso.GetFile(&quot;D:\Файл\forma_dog.pdf&quot;)
Set fold1 = fso.GetFolder(&quot;D:\Юр.лица&quot;)
Set foc1 = fold1.SubFolders
For Each fol1 in foc1
	fpath = fol1.Path &amp; &quot;\Постоянный договор\&quot; &amp; file1.name
	file1.Copy (fpath)
	&#039;MsgBox fpath
Next
</code></pre></div><p>Т.е. я каждый день на работе должен копировать файл forma_dog.pdf в папку с названием &quot;Постоянный договор&quot; в папках у каждого клиента. Иначе говоря должна получится вот такая структура:<br />D:\Юр.лица\Петя\Постоянный договор\forma_dog.pdf<br />D:\Юр.лица\Вася\Постоянный договор\forma_dog.pdf<br />D:\Юр.лица\Саша\Постоянный договор\forma_dog.pdf<br />Хотелось бы чтобы код работал не зная заранее имен клиентов, как на примере vbs. Т.е. чтобы он проходил каждую вложенную папку папки Юр.лица.</p><p>Как мне это сделать на CMD/BAT?</p>]]></content>
			<author>
				<name><![CDATA[mike.sunday19]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42017</uri>
			</author>
			<updated>2021-10-07T18:53:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=149952#p149952</id>
		</entry>
</feed>
