Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Fresh96:
Дату в имени файла. Например ПС02.ПА_2014.01.12_b.docx (формат ГГГГ.ММ.ДД) »
Ясно. Не доглядел.

Попробуйте так (на WSH):
читать дальше »
Код: Выделить весь код
Option Explicit

Dim strSourceFolder

Dim dtNow
Dim strNow

Dim objDictionary
Dim objRegExp
Dim objFile

Dim strKey


strSourceFolder = "E:\Песочница\0352"

With WScript.CreateObject("Scripting.FileSystemObject")
	If .FolderExists(strSourceFolder) Then
		dtNow  = Now()
		strNow = Year(dtNow) & "." & Right("00" & CStr(Month(dtNow)), 2) & "." & Right("00" & CStr(Day(dtNow)), 2)
		
		Set objDictionary = WScript.CreateObject("Scripting.Dictionary")
		
		Set objRegExp     = WScript.CreateObject("VBScript.RegExp")
		objRegExp.Pattern = "^(.+?)(\d{4}\.\d{2}\.\d{2})(.+)$"
		
		For Each objFile In .GetFolder(strSourceFolder).Files
			If objRegExp.Test(objFile.Name) Then
				objDictionary.Add objFile.Name, objRegExp.Replace(objFile.Name, "$1" & strNow & "$3")
			End If
		Next
		
		objRegExp.Pattern = "^(.+)b$"
		
		For Each strKey In objDictionary.Keys
			If objRegExp.Test(.GetBaseName(objDictionary.Item(strKey))) Then
				objDictionary.Item(strKey) = objRegExp.Replace(.GetBaseName(objDictionary.Item(strKey)), "$1u." & .GetExtensionName(objDictionary.Item(strKey)))
			End If
		Next
		
		Randomize Timer
		
		For Each strKey In objDictionary.Keys
			Do Until Not .FileExists(.BuildPath(strSourceFolder, objDictionary.Item(strKey)))
				objDictionary.Item(strKey) = .GetBaseName(objDictionary.Item(strKey)) & "_" & Left(CStr(Rnd() * 10000), 4) & "." & .GetExtensionName(objDictionary.Item(strKey))
			Loop
			
			.GetFile(.BuildPath(strSourceFolder, strKey)).Name = objDictionary.Item(strKey)
		Next
	Else
		WScript.Echo "Source folder [" & strSourceFolder & "] not found."
		WScript.Quit 1
	End If
End With

WScript.Quit 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:05, 15-01-2014 | #4