<?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>http://forum.script-coding.com/viewtopic.php?id=13986</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=13986&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CMD/BAT: Переименование файлов».]]></description>
		<lastBuildDate>Tue, 31 Jul 2018 14:20:13 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: CMD/BAT: Переименование файлов]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=127605#p127605</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Tue, 31 Jul 2018 14:20:13 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=127605#p127605</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Переименование файлов]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=127602#p127602</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Tue, 31 Jul 2018 12:50:27 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=127602#p127602</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Переименование файлов]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=127600#p127600</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Tue, 31 Jul 2018 02:05:47 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=127600#p127600</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Переименование файлов]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=127598#p127598</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Tue, 31 Jul 2018 00:49:01 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=127598#p127598</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Переименование файлов]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=127597#p127597</link>
			<description><![CDATA[<p><em>Удалено по просьбе автора темы.</em></p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Mon, 30 Jul 2018 21:02:14 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=127597#p127597</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Переименование файлов]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=127572#p127572</link>
			<description><![CDATA[<p><em>Удалено по просьбе автора темы.</em></p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Mon, 30 Jul 2018 13:37:28 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=127572#p127572</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Переименование файлов]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=127539#p127539</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Sun, 29 Jul 2018 15:48:50 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=127539#p127539</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Переименование файлов]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=127520#p127520</link>
			<description><![CDATA[<p>А если я реализую Ваши задачи скриптом на AHK?</p>]]></description>
			<author><![CDATA[null@example.com (qqlexa)]]></author>
			<pubDate>Sat, 28 Jul 2018 20:58:43 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=127520#p127520</guid>
		</item>
		<item>
			<title><![CDATA[CMD/BAT: Переименование файлов]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=127513#p127513</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Sundr)]]></author>
			<pubDate>Sat, 28 Jul 2018 14:25:23 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=127513#p127513</guid>
		</item>
	</channel>
</rss>
