<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBS: Переименование в транслит файлов всей структуры каталога]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=12150</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=12150&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBS: Переименование в транслит файлов всей структуры каталога».]]></description>
		<lastBuildDate>Mon, 21 Nov 2016 03:37:39 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBS: Переименование в транслит файлов всей структуры каталога]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=109249#p109249</link>
			<description><![CDATA[<p>Cпасибо.</p>]]></description>
			<author><![CDATA[null@example.com (mamay_83)]]></author>
			<pubDate>Mon, 21 Nov 2016 03:37:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=109249#p109249</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Переименование в транслит файлов всей структуры каталога]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=109205#p109205</link>
			<description><![CDATA[<p>Всё до <em>Function Rus2Lat(strRus)</em> заменяйте:<br /></p><div class="codebox"><pre><code>Option Explicit
Dim tmpFolder, objFSO, objShell, objRegExp

tmpFolder = &quot;c:\tmp\&quot;

Set objFSO    = CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set objShell  = CreateObject(&quot;Shell.Application&quot;)
Set objRegExp = New Regexp : objRegExp.Global = True
objRegExp.Pattern = &quot;[().,]&quot;

FilesRename tmpFolder
WScript.Echo &quot;Готово&quot;

Sub FilesRename(tmpPath)
	Dim Items, frFile, frSubFolder, frName
	Set Items = objShell.NameSpace(tmpPath).Items
	Items.Filter 8384, &quot;*.jpg&quot;
	If Items.Count Then
		For Each frFile in Items
			frName = objRegExp.Replace(Replace(LCase(Rus2Lat(objFSO.GetFileName(tmpPath) &amp;_
			&quot;_&quot; &amp; objFSO.GetBaseName(frFile))), &quot; &quot;, &quot;_&quot;), &quot;&quot;) &amp; &quot;.jpg&quot;
			If Not objFSO.FileExists(objFSO.BuildPath(tmpPath, frName)) Then frFile.Name = frName
		Next
	End If : Items.Filter 8352, &quot;*&quot;
	For Each frSubFolder in Items : FilesRename frSubFolder.Path : Next
End Sub</code></pre></div><p><strong><span style="color: green">Заголовок исправлен на тематический.</span></strong></p>]]></description>
			<author><![CDATA[null@example.com (Flasher)]]></author>
			<pubDate>Thu, 17 Nov 2016 12:56:33 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=109205#p109205</guid>
		</item>
		<item>
			<title><![CDATA[VBS: Переименование в транслит файлов всей структуры каталога]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=109201#p109201</link>
			<description><![CDATA[<p>Здравствуйте. Есть скрипт который ищет файлы в папке и подпапках и переименовывает файлы как имя папки + имя файла, а также переводит имя в транслит и удоляет символы. Проблема в том что если файлов грубо говоря десять или меньше все работает как надо, а если файлов много то переименование идет неправельно как т как имя папки+имя папки+имя папки+имя папки+имя папки+имя папки+имя файла. Скрипт вываливается с ошибкой не найден путь. Подскажите как это исправить или в какую сторону смотреть.</p><p>Сам скрипт:<br />(Чтобы работала функция Rus2Lat файл скрипта должен быть в кодировке Windows-1251)<br /></p><div class="codebox"><pre><code>
tmpFolder = &quot;c:\tmp\&quot;

FilesRename tmpFolder

WScript.Echo &quot;Готово&quot;

Function FilesRename(tmpPath)
 Dim frFolder, frFile, frSubFolder, frName
 If Len(tmpPath) &lt;&gt; 0 Then
    Set objFSO = WScript.CreateObject(&quot;Scripting.FileSystemObject&quot;)    
    If objFSO.FolderExists(tmpPath) Then
		Set frFolder = objFSO.GetFolder(tmpPath)
        For Each frFile In frFolder.Files
			If UCase(objFSO.GetExtensionName(frFile.Name)) = UCase(&quot;jpg&quot;) Then
				frName = LCase(Rus2Lat(frFolder.Name))
				frName = frName &amp; &quot;_&quot; &amp; LCase(Rus2Lat(objFSO.GetBaseName(frFile.Name)))
				frName = Replace (frName,&quot; &quot;,&quot;_&quot;)
			   frName = Replace (frName,&quot;)&quot;,&quot;&quot;)
			   frName = Replace (frName,&quot;(&quot;,&quot;&quot;)
			   frName = Replace (frName,&quot;,&quot;,&quot;&quot;)
			   frName = Replace (frName,&quot;.&quot;,&quot;&quot;)
			   frFile.Name = frName &amp; &quot;.jpg&quot;
			End If
		Next
	End If	
			For Each frSubFolder In frFolder.SubFolders
			FilesRename(frSubFolder)
			Next
 End If 
End Function

Function Rus2Lat(strRus)
    Dim i
    Dim strTemp
    Dim strLat
    For i = 1 To Len(strRus)
        strTemp = Mid(strRus, i, 1)             
        Select Case strTemp
            Case &quot;а&quot;
                strLat = strLat &amp; &quot;a&quot;
            Case &quot;А&quot;
                strLat = strLat &amp; &quot;A&quot;
            Case &quot;б&quot;
                strLat = strLat &amp; &quot;b&quot;
            Case &quot;Б&quot;
                strLat = strLat &amp; &quot;B&quot;
            Case &quot;в&quot;
                strLat = strLat &amp; &quot;v&quot;
            Case &quot;В&quot;
                strLat = strLat &amp; &quot;V&quot;
            Case &quot;г&quot;
                strLat = strLat &amp; &quot;g&quot;
            Case &quot;Г&quot;
                strLat = strLat &amp; &quot;G&quot;
            Case &quot;д&quot;
                strLat = strLat &amp; &quot;d&quot;
            Case &quot;Д&quot;
                strLat = strLat &amp; &quot;D&quot;
            Case &quot;е&quot;
                strLat = strLat &amp; &quot;e&quot;
            Case &quot;Е&quot;
                strLat = strLat &amp; &quot;E&quot;
            Case &quot;ё&quot;
                strLat = strLat &amp; &quot;yo&quot;
            Case &quot;Ё&quot;
                strLat = strLat &amp; &quot;Yo&quot;
            Case &quot;ж&quot;
                strLat = strLat &amp; &quot;zh&quot;
            Case &quot;Ж&quot;
                strLat = strLat &amp; &quot;Zh&quot;
            Case &quot;з&quot;
                strLat = strLat &amp; &quot;z&quot;
            Case &quot;З&quot;
                strLat = strLat &amp; &quot;Z&quot;
            Case &quot;и&quot;
                strLat = strLat &amp; &quot;i&quot;
            Case &quot;И&quot;
                strLat = strLat &amp; &quot;I&quot;
            Case &quot;й&quot;
                strLat = strLat &amp; &quot;i&quot;
            Case &quot;Й&quot;
                strLat = strLat &amp; &quot;I&quot;
            Case &quot;к&quot;
                strLat = strLat &amp; &quot;k&quot;
            Case &quot;К&quot;
                strLat = strLat &amp; &quot;K&quot;
            Case &quot;л&quot;
                strLat = strLat &amp; &quot;l&quot;
            Case &quot;Л&quot;
                strLat = strLat &amp; &quot;L&quot;
            Case &quot;м&quot;
                strLat = strLat &amp; &quot;m&quot;
            Case &quot;М&quot;
                strLat = strLat &amp; &quot;M&quot;
            Case &quot;н&quot;
                strLat = strLat &amp; &quot;n&quot;
            Case &quot;Н&quot;
                strLat = strLat &amp; &quot;N&quot;
            Case &quot;о&quot;
                strLat = strLat &amp; &quot;o&quot;
            Case &quot;О&quot;
                strLat = strLat &amp; &quot;O&quot;
            Case &quot;п&quot;
                strLat = strLat &amp; &quot;p&quot;
            Case &quot;П&quot;
                strLat = strLat &amp; &quot;P&quot;
            Case &quot;р&quot;
                strLat = strLat &amp; &quot;r&quot;
            Case &quot;Р&quot;
                strLat = strLat &amp; &quot;R&quot;
            Case &quot;с&quot;
                strLat = strLat &amp; &quot;s&quot;
            Case &quot;С&quot;
                strLat = strLat &amp; &quot;S&quot;
            Case &quot;т&quot;
                strLat = strLat &amp; &quot;t&quot;
            Case &quot;Т&quot;
                strLat = strLat &amp; &quot;T&quot;
            Case &quot;у&quot;
                strLat = strLat &amp; &quot;u&quot;
            Case &quot;У&quot;
                strLat = strLat &amp; &quot;U&quot;
            Case &quot;ф&quot;
                strLat = strLat &amp; &quot;f&quot;
            Case &quot;Ф&quot;
                strLat = strLat &amp; &quot;F&quot;
            Case &quot;х&quot;
                strLat = strLat &amp; &quot;kh&quot;
            Case &quot;Х&quot;
                strLat = strLat &amp; &quot;Kh&quot;
            Case &quot;ц&quot;
                strLat = strLat &amp; &quot;ts&quot;
            Case &quot;Ц&quot;
                strLat = strLat &amp; &quot;Ts&quot;
            Case &quot;ч&quot;
                strLat = strLat &amp; &quot;ch&quot;
            Case &quot;Ч&quot;
                strLat = strLat &amp; &quot;Ch&quot;
            Case &quot;ш&quot;
                strLat = strLat &amp; &quot;sh&quot;
            Case &quot;Ш&quot;
                strLat = strLat &amp; &quot;Sh&quot;
            Case &quot;щ&quot;
                strLat = strLat &amp; &quot;sch&quot;
            Case &quot;Щ&quot;
                strLat = strLat &amp; &quot;Sch&quot;
            Case &quot;ъ&quot;
                strLat = strLat &amp; &quot;&quot;
            Case &quot;Ъ&quot;
                strLat = strLat &amp; &quot;&quot;
            Case &quot;ы&quot;
                strLat = strLat &amp; &quot;y&quot;
            Case &quot;Ы&quot;
                strLat = strLat &amp; &quot;Y&quot;
            Case &quot;ь&quot;
                strLat = strLat &amp; &quot;&quot;
            Case &quot;Ь&quot;
                strLat = strLat &amp; &quot;&quot;
            Case &quot;э&quot;
                strLat = strLat &amp; &quot;e&quot;
            Case &quot;Э&quot;
                strLat = strLat &amp; &quot;E&quot;
            Case &quot;ю&quot;
                strLat = strLat &amp; &quot;yu&quot;
            Case &quot;Ю&quot;
                strLat = strLat &amp; &quot;Yu&quot;
            Case &quot;я&quot;
                strLat = strLat &amp; &quot;ya&quot;
            Case &quot;Я&quot;
                strLat = strLat &amp; &quot;Ya&quot;
            Case Else
                &#039;unknown symbol
                strLat = strLat &amp; strTemp
        End Select
    Next
    Rus2Lat = strLat
	End Function
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (mamay_83)]]></author>
			<pubDate>Thu, 17 Nov 2016 04:32:05 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=109201#p109201</guid>
		</item>
	</channel>
</rss>
