<?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="http://forum.script-coding.com/extern.php?action=feed&amp;tid=13986&amp;type=atom" />
	<updated>2018-07-31T14:20:13Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=13986</id>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Переименование файлов]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=127605#p127605" />
			<content type="html"><![CDATA[<p>Из PM:<br /></p><div class="quotebox"><blockquote><p>И последний штрих, пожалуйста сделайте батник объединяющий сразу две операции вместе, т.е. комбинированный вариант.<br />Соедините пожалуйста два батника в один, первый батник это будет последний вариант по добавлению цифр и одновременное переименование этих&nbsp; файлов, где меняются аббревиатуры у четырех каналов:<br />SL=&gt;будет LSS; SR=&gt;будет RSS;BL=&gt;LSR; BR=&gt;RSR.<br />Нужно просто соединить их функционал в один батник.</p></blockquote></div><p>«Горшочек, вари!»:<br /></p><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

for %%i in (&quot;*.SL.wav&quot; &quot;*.SR.wav&quot; &quot;*.BL.wav&quot; &quot;*.BR.wav&quot;) do (
	for /f &quot;usebackq delims=&quot; %%j in (
		`2^&gt;nul dir /b /a:-d &quot;%%~i&quot;`
	) do (
		set sFileName=%%~j
		
		set sNewFileName=!sFileName:.SL.wav=.LSS.wav!
		set sNewFileName=!sNewFileName:.SR.wav=.RSS.wav!
		set sNewFileName=!sNewFileName:.BL.wav=.LSR.wav!
		set sNewFileName=!sNewFileName:.BR.wav=.RSR.wav!

		echo Rename file [!sFileName!] into [!sNewFileName!].
		ren &quot;!sFileName!&quot; &quot;!sNewFileName!&quot;
	)
)

for %%i in (&quot;1:.L.wav&quot; &quot;2:.R.wav&quot; &quot;3:.C.wav&quot; &quot;4:.LFE.wav&quot; &quot;5:.LSS.wav&quot; &quot;6:.RSS.wav&quot; &quot;7:.LSR.wav&quot; &quot;8:.RSR.wav&quot;) do (
	set sVar=%%~i
	call :Rename &quot;!sVar::=&quot; &quot;!&quot;
)

endlocal
exit /b 0

:Rename
	for /f &quot;usebackq delims=&quot; %%i in (
		`2^&gt;nul dir /a:-d /b &quot;*%~2&quot;`
	) do (
		set sFileName=%%~i
		
		if &quot;!sFileName:~0,2!&quot; neq &quot;%~1.&quot; (
			echo Rename file [%%~i] into [%~1.%%~i].
			ren &quot;%%~i&quot; &quot;%~1.%%~i&quot;
		)
	)
	
	exit /b</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2018-07-31T14:20:13Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=127605#p127605</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Переименование файлов]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=127602#p127602" />
			<content type="html"><![CDATA[<p>Продолжаем варить кашу из топора.<br /></p><div class="quotebox"><blockquote><p>Пожалуйста поправьте еще и самый первый батник, который вы делали по дабавлению цифр. http://forum.script-coding.com/viewtopic.php?id=13971 Сейчас он проставляет цифры, только если в папке есть строго шесть файлов и они соответствуют аббревиатурам: &quot;L&quot;, &quot;R&quot;, &quot;С&quot;, &quot;LFE&quot;, &quot;SL&quot;, &quot;SR&quot;&nbsp; Сделайте пожалуйста на основе этого батника, новый для добавления цифр ,когда у нас лежат восемь файлов в папке.<br />Внесите пожалуйста правки , чтобы батник умел просталять цифры даже если меньше восьми файлов находятся в папке, хоть всего один. Нумерация каналов та же.<br />И второй момент нужно чтобы батник умел срабатывать на переименованные аббревиатуры, как вы это делали в случае с удалением цифр.<br />т.е. добавляется опять условие со второй версией наименованй аббревиатур на четыре канала, чтобы батник срабатывал в обоих случаях наименование аббревиатур,&nbsp; т.е. SL=&gt;будет LSS; SR=&gt;будет RSS; BL=&gt;LSR; BR=&gt;RSR.</p></blockquote></div><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

for %%i in (&quot;1:.L.wav&quot; &quot;2:.R.wav&quot; &quot;3:.C.wav&quot; &quot;4:.LFE.wav&quot; &quot;5:.SL.wav&quot; &quot;6:.SR.wav&quot; &quot;7:.BL.wav&quot; &quot;8:.BR.wav&quot; &quot;5:.LSS.wav&quot; &quot;6:.RSS.wav&quot; &quot;7:.LSR.wav&quot; &quot;8:.RSR.wav&quot;) do (
	set sVar=%%~i
	call :Rename &quot;!sVar::=&quot; &quot;!&quot;
)

endlocal
exit /b 0

:Rename
	for /f &quot;usebackq delims=&quot; %%i in (
		`2^&gt;nul dir /a:-d /b &quot;*%~2&quot;`
	) do (
		set sFileName=%%~i
		
		if &quot;!sFileName:~0,2!&quot; neq &quot;%~1.&quot; (
			echo Rename file [%%~i] into [%~1.%%~i].
			ren &quot;%%~i&quot; &quot;%~1.%%~i&quot;
		)
	)
	
	exit /b</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2018-07-31T12:50:27Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=127602#p127602</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Переименование файлов]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=127600#p127600" />
			<content type="html"><![CDATA[<p>Новая инкарнация первого пакетного файла в соответствии с новыми пожеланиями:<br /></p><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

for %%i in (&quot;1.*.L.wav&quot; &quot;2.*.R.wav&quot; &quot;3.*.C.wav&quot; &quot;4.*.LFE.wav&quot; &quot;5.*.SL.wav&quot; &quot;6.*.SR.wav&quot; &quot;7.*.BL.wav&quot; &quot;8.*.BR.wav&quot; &quot;5.*.LSS.wav&quot; &quot;6.*.RSS.wav&quot; &quot;7.*.LSR.wav&quot; &quot;8.*.RSR.wav&quot;) do (
	for /f &quot;usebackq delims=&quot; %%j in (
		`2^&gt;nul dir /b /a:-d &quot;%%~i&quot;`
	) do (
		set sFileName=%%~j
		
		echo Rename file [!sFileName!] into [!sFileName:~2!].
		ren &quot;!sFileName!&quot; &quot;!sFileName:~2!&quot;
	)
)

endlocal
exit /b 0
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2018-07-31T02:05:47Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=127600#p127600</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Переименование файлов]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=127598#p127598" />
			<content type="html"><![CDATA[<p>Продолжение эпопеи.</p><div class="quotebox"><blockquote><p>Я когда тестировал первые два батника, заметил что они срабатывают&nbsp; по такому приципу,если в папке есть строго определеное количество файлов.<br />В первом батнике в папке должно быть четко шесть файлов и тогда батник сработает. Есть пожелание, а можно сделать так чтобы первый батник срабатывал и на меньшее количество файлов. Предположим в папке есть только 1-й канал, 3-й канал и 6-й. Тогда запустив батник, мы видим что во всех этих трех файлах удалились передние цифры. Сделайте пожалуйста правку на меньшее количество каналов.</p></blockquote></div><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

for %%i in (&quot;1.*.L.wav&quot; &quot;2.*.R.wav&quot; &quot;3.*.C.wav&quot; &quot;4.*.LFE.wav&quot; &quot;5.*.SL.wav&quot; &quot;6.*.SR.wav&quot;) do (
	for /f &quot;usebackq delims=&quot; %%j in (
		`2^&gt;nul dir /b /a:-d &quot;%%~i&quot;`
	) do (
		set sFileName=%%~j
		
		echo Rename file [!sFileName!] into [!sFileName:~2!].
		ren &quot;!sFileName!&quot; &quot;!sFileName:~2!&quot;
	)
)

endlocal
exit /b 0
</code></pre></div><div class="quotebox"><blockquote><p>И во втором батнике аналогичная ситуация. Батник срабатывает только если в папке есть четко восемь файлов. Если в папке хотябы одного не хватает, то уже батник не срабатывает. Сделайте пожалуйста здесь также правку и чтобы срабатывало переименование даже если в папке лежит только один файл из восьми всего.</p></blockquote></div><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

for %%i in (&quot;*.SL.wav&quot; &quot;*.SR.wav&quot; &quot;*.BL.wav&quot; &quot;*.BR.wav&quot;) do (
	for /f &quot;usebackq delims=&quot; %%j in (
		`2^&gt;nul dir /b /a:-d &quot;%%~i&quot;`
	) do (
		set sFileName=%%~j
		
		set sNewFileName=!sFileName:.SL.wav=.LSS.wav!
		set sNewFileName=!sNewFileName:.SR.wav=.RSS.wav!
		set sNewFileName=!sNewFileName:.BL.wav=.LSR.wav!
		set sNewFileName=!sNewFileName:.BR.wav=.RSR.wav!

		echo Rename file [!sFileName!] into [!sNewFileName!].
		ren &quot;!sFileName!&quot; &quot;!sNewFileName!&quot;
	)
)

endlocal
exit /b 0
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2018-07-31T00:49:01Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=127598#p127598</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Переименование файлов]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=127597#p127597" />
			<content type="html"><![CDATA[<p><em>Удалено по просьбе автора темы.</em></p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2018-07-30T21:02:14Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=127597#p127597</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Переименование файлов]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=127572#p127572" />
			<content type="html"><![CDATA[<p><em>Удалено по просьбе автора темы.</em></p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2018-07-30T13:37:28Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=127572#p127572</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Переименование файлов]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=127539#p127539" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Sundr пишет:</cite><blockquote><p>1) Первый батник:</p></blockquote></div><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

for /f &quot;usebackq delims=&quot; %%i in (
	`2^&gt;nul dir /a:-d /b &quot;1.*.L.wav&quot;`
) do (
	set sName=%%~i
	echo Found first file [!sName!] in collection.
	
	set sPartName=!sName:.L.wav=!
	set sPartName=!sPartName:~2!
	echo Partial name is: [!sPartName!].
	
	set /a bExists = 1
	
	for %%j in (&quot;2.:.R.wav&quot; &quot;3.:.C.wav&quot; &quot;4.:.LFE.wav&quot; &quot;5.:.SL.wav&quot; &quot;6.:.SR.wav&quot;) do (
		set sTemlateFileName=%%~j
		call set sFileName=!sTemlateFileName::=%%sPartName%%!
		
		if not exist &quot;!sFileName!&quot; (
			set /a bExists = 0
			echo Collection file [!sFileName!] not found.
		)
	)
	
	if !bExists! equ 1 (
		echo All collection files found.
		
		for %%j in (&quot;1.:.L.wav&quot; &quot;2.:.R.wav&quot; &quot;3.:.C.wav&quot; &quot;4.:.LFE.wav&quot; &quot;5.:.SL.wav&quot; &quot;6.:.SR.wav&quot;) do (
			set sTemlateFileName=%%~j
			call set sFileName=!sTemlateFileName::=%%sPartName%%!
			echo Rename file [!sFileName!] into [!sFileName:~2!].
			ren &quot;!sFileName!&quot; &quot;!sFileName:~2!&quot;
		)
	) else (
		echo Not all collection files found.
	)
	
	echo.
)

endlocal
exit /b 0
</code></pre></div><div class="quotebox"><cite>Sundr пишет:</cite><blockquote><p>2) Второй батник:</p></blockquote></div><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

&gt;nul 2&gt;&amp;1 dir /a:-d /b &quot;*.L.wav&quot;   &amp;&amp; call :Unnamed
&gt;nul 2&gt;&amp;1 dir /a:-d /b &quot;1.*.L.wav&quot; &amp;&amp; call :Named

endlocal
exit /b 0

:Unnamed
	for /f &quot;usebackq delims=&quot; %%i in (
		`2^&gt;nul dir /a:-d /b &quot;*.L.wav&quot;`
	) do (
		set sName=%%~i
		echo Found first file [!sName!] in collection.
		
		set sPartName=!sName:.L.wav=!
		echo Partial name is: [!sPartName!].
		
		set /a bExists = 1
		
		for %%j in (&quot;.R.wav&quot; &quot;.C.wav&quot; &quot;.LFE.wav&quot; &quot;.SL.wav&quot; &quot;.SR.wav&quot; &quot;.BL.wav&quot;, &quot;.BR.wav&quot;) do if not exist &quot;!sPartName!%%~j&quot; (
			set /a bExists = 0
			echo Collection file [!sPartName!%%~j] not found.
		)
		
		if !bExists! equ 1 (
			echo All collection files found.
		
			echo Rename file [!sPartName!.SL.wav] into [!sPartName!.LSS.wav].
			ren &quot;!sPartName!.SL.wav&quot; &quot;!sPartName!.LSS.wav&quot;.
			
			echo Rename file [!sPartName!.SR.wav] into [!sPartName!.RSS.wav].
			ren &quot;!sPartName!.SR.wav&quot; &quot;!sPartName!.RSS.wav&quot;.
			
			echo Rename file [!sPartName!.BL.wav] into [!sPartName!.LSR.wav].
			ren &quot;!sPartName!.BL.wav&quot; &quot;!sPartName!.LSR.wav&quot;.
			
			echo Rename file [!sPartName!.BR.wav] into [!sPartName!.RSR.wav].
			ren &quot;!sPartName!.BR.wav&quot; &quot;!sPartName!.RSR.wav&quot;.
		) else (
			echo Not all collection files found.
		)
		
		echo.
	)

exit /b

:Named
	for /f &quot;usebackq delims=&quot; %%i in (
		`2^&gt;nul dir /a:-d /b &quot;1.*.L.wav&quot;`
	) do (
		set sName=%%~i
		echo Found first file [!sName!] in collection.
	
		set sPartName=!sName:.L.wav=!
		set sPartName=!sPartName:~2!
		echo Partial name is: [!sPartName!].
	
		set /a bExists = 1
	
		for %%j in (&quot;2.:.R.wav&quot; &quot;3.:.C.wav&quot; &quot;4.:.LFE.wav&quot; &quot;5.:.SL.wav&quot; &quot;6.:.SR.wav&quot; &quot;7.:.BL.wav&quot;, &quot;8.:.BR.wav&quot;) do (
			set sTemlateFileName=%%~j
			call set sFileName=!sTemlateFileName::=%%sPartName%%!
		
			if not exist &quot;!sFileName!&quot; (
				set /a bExists = 0
				echo Collection file [!sFileName!] not found.
			)
		)
	
		if !bExists! equ 1 (
			echo All collection files found.
		
			echo Rename file [5.!sPartName!.SL.wav] into [5.!sPartName!.LSS.wav].
			ren &quot;5.!sPartName!.SL.wav&quot; &quot;5.!sPartName!.LSS.wav&quot;.
			
			echo Rename file [6.!sPartName!.SR.wav] into [6.!sPartName!.RSS.wav].
			ren &quot;6.!sPartName!.SR.wav&quot; &quot;6.!sPartName!.RSS.wav&quot;.
			
			echo Rename file [7.!sPartName!.BL.wav] into [7.!sPartName!.LSR.wav].
			ren &quot;7.!sPartName!.BL.wav&quot; &quot;7.!sPartName!.LSR.wav&quot;.
			
			echo Rename file [8.!sPartName!.BR.wav] into [8.!sPartName!.RSR.wav].
			ren &quot;8.!sPartName!.BR.wav&quot; &quot;8.!sPartName!.RSR.wav&quot;.
		) else (
			echo Not all collection files found.
		)
	
		echo.
	)

exit /b
</code></pre></div><p>Пробуйте.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2018-07-29T15:48:50Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=127539#p127539</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Переименование файлов]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=127520#p127520" />
			<content type="html"><![CDATA[<p>А если я реализую Ваши задачи скриптом на AHK?</p>]]></content>
			<author>
				<name><![CDATA[qqlexa]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=39096</uri>
			</author>
			<updated>2018-07-28T20:58:43Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=127520#p127520</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[CMD/BAT: Переименование файлов]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=127513#p127513" />
			<content type="html"><![CDATA[<p>Добрый день.</p><p>Прошу сделать два батника по переименованию аудио файлов.Батникам необходимо работать в любой директории.</p><p>1) Первый батник: В папке лежат шесть&nbsp; аудио файлов, формата &quot;wav&quot;. Эти шесть моно файлов соответсвуют многоканальным каналам и им присвоены названия по следующему шаблону:<br />[ Номер.Наименование канала.Сокращенная аббревиатура канала. Расширение файла. ] <br />1.Name channel.L.wav<br />2.Name channel.R.wav<br />3.Name channel.C.wav<br />4.Name channel.LFE.wav<br />5.Name channel.SL.wav<br />6.Name channel.SR.wav<br />Наименование каждого канала начинается с номера с точкой. Нумерация идет от 1 до 6. Цифры идут в таком формате : &quot;1.&quot;&nbsp; &quot;2.&quot; &quot;3.&quot; &quot;4.&quot; &quot;5.&quot; &quot;6.&quot;<br />Батнику необходимо работать в любой директории и уметь переименовать&nbsp; названия файлов чтобы удалялись все&nbsp; цифры вместе с точкой из названий, впереди стоящие.После работы батника названия файлов будут выглядеть так:<br />Name channel.L.wav<br />Name channel.R.wav<br />Name channel.C.wav<br />Name channel.LFE.wav<br />Name channel.SL.wav<br />Name channel.SR.wav<br />Сами имена файлов не нужно менять, только удаляются цифры вместе с точкой.</p><p>Примечание: Могут быть также ситуации, что в папке будет лежать намного больше &quot;wav&quot; файлов , а не ровно шесть штук. Необходимо чтобы батник понимал такую ситуацию и брал в работу только файлы с аббревиатурой и игнорировал другие &quot;wav&quot; файлы .</p><p>2) Второй батник: В папке лежат восемь&nbsp; аудио файлов, формата &quot;wav&quot;. Эти восемь файлов могут начинаться в названии с номера, т.е. имея нумерацию от 1 до 8. Или совсем не иметь номера в названии. И так и так может быть. Наименование каналов(Name channel) может быть любым, а постоянным всегда остаются аббревиатуры в конце наименования.Перед аббревиатурой&nbsp; также всегда идет точка. Ситуация аналогичная как в первом случае, здесь просто идет другой список аббревиатур.<br />Вот список всех аббревиатур: &quot;.L&quot;, &quot;.R&quot;, &quot;.С&quot;, &quot;.LFE&quot;, &quot;.SL&quot;, &quot;.SR&quot;, &quot;.BL&quot;, &quot;.BR&quot;</p><p>Батнику необходимо работать в любой директории и уметь переименовать&nbsp; названия только четырех файлов из этих восьми, в папке.Названия файлов какое бы не было остется, а меняется только аббревиатура у четырех файлов. Вот список четырех аббревиатур, которые надо переименовать:<br />&quot;SL&quot; переименовывается на&nbsp; &quot;LSS&quot;<br />&quot;SR&quot; переименовывается на&nbsp; &quot;RSS&quot;<br />&quot;BL&quot; переименовывается на&nbsp; &quot;LSR&quot;<br />&quot;BR&quot; переименовывается на&nbsp; &quot;RSR&quot;</p><p>Примечание: Могут быть также ситуации, что в папке будет лежать намного больше &quot;wav&quot; файлов , а не ровно восемь штук. Необходимо чтобы батник понимал такую ситуацию и брал в работу только файлы с аббревиатурами: &quot;.SL&quot;, &quot;.SR&quot;, &quot;.BL&quot;, &quot;.BR&quot; и игнорировал другие &quot;wav&quot; файлы .</p><br /><p>Цена: 600 руб за два батника.<br />Готов обсудить детали.</p>]]></content>
			<author>
				<name><![CDATA[Sundr]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=39400</uri>
			</author>
			<updated>2018-07-28T14:25:23Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=127513#p127513</id>
		</entry>
</feed>
