Ветеран
Сообщения: 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
|