Цитата Traveller124:
Вот так например objFolder = "D:\001\Folder" - понимаю, а вот что означает "указывается аргументом" - не понимаю. »
|
Например, Вы сохранили скрипт в «c:\Temp\new2.vbs». Запускаете командную строку. В ней пишете:
Код:

cscript.exe //nologo "c:\Temp\new2.vbs" "D:\001\Folder"
«D:\001\Folder» — это и будет аргумент скрипта.
Цитата Traveller124:
Наверное я чуток не так написал, не исключаю, но когда я указал, что "Имеется папка Folder с подпапками." и далее упоминал про "(в каждой папке он будет один)" я как раз и имел в виду папку Folder с подпапками. »
|
В этом случае обычно пишут — рекурсивно, что означает — по всем уровням вложенности. Данный скрипт на это не был рассчитан. Надо будет его менять.
Traveller124, пробуйте так:
читать дальше »
Код:

Option Explicit
Dim strSourceFolder
Dim objFSO
Dim objRegExp
If WScript.Arguments.Count = 1 Then
strSourceFolder = WScript.Arguments.Item(0)
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(strSourceFolder) Then
Set objRegExp = WScript.CreateObject("VBScript.RegExp")
With objRegExp
.Pattern = ".*file.*\.txt"
.IgnoreCase = True
End With
ScanSubFolders objFSO.GetFolder(strSourceFolder)
Set objRegExp = Nothing
Else
WScript.Echo "Source folder [" & strSourceFolder & "] not found"
End If
Set objFSO = Nothing
Else
WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ ""<Source folder>"""
End If
WScript.Quit 0
'=============================================================================
'=============================================================================
Sub ScanSubFolders(objFolder)
Dim objFile
Dim objSubFolder
'WScript.Echo objFolder.Path
For Each objFile In objFolder.Files
If objRegExp.Test(objFile.Name) Then
If UCase(objFile.Name) <> UCase("123_temp_file.txt") Then
WScript.Echo "Found file [" & objFile.Path & "]"
objFile.Name = "123_temp_file.txt"
WScript.Echo " Rename into [" & objFile.Path & "]"
End If
End If
Next
On Error Resume Next
For Each objSubFolder In objFolder.SubFolders
If Err.Number = 0 Then
On Error Goto 0
ScanSubFolders objSubFolder
Else
Err.Clear
On Error Goto 0
WScript.Echo "Can't enumerate subfolders for folder [" & objFolder.Path & "]."
End If
Next
End Sub
'=============================================================================