Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: Переименование файлов
     
    
Добавлено: 11.12.06 21:15
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
    
 Николай
      
       
  
Есть директория (например C:\TEST) в нее периодически перемещаются файлы (с неизвестными мне именами). Необходимо эти файлы периодически переименовывать (чтобы можно было обращаться к ним): '0001.xml', '0002.xml' и т.д. 
 
    
Можно ли это написать на VBS и запустить фоновым процессом в Windows? Предназначен ли для этого VBS? И если это не очень сложно то помогите с кодом 
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 8
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа:
 JMP
![]()
![]()
Вопросов: 6
Ответов: 171
      
 Профиль |  | #1
       
Добавлено:  12.12.06 10:07
       
    
       
  
 
    
http://wincmd.ru/forum/viewtopic.php?p=6875&sid=210c7cfaec87ccbfa44a14819a0e00a3
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа:
 Шпион
![]()
ICQ: 250543104 
Вопросов: 13
Ответов: 118
      
 Профиль |  | #2
       
Добавлено:  12.12.06 10:19
       
    
       
  
 
    
On Error Resume Next
path="c:\temp"
new_ext="xml"
If Right(path,1)<>"\" Then path=path & "\"
Set objFSO=Createobject("Scripting.Filesystemobject"
Set objFolder=objFSO.GetFolder(path)
Set objFiles=objFolder.Files
For Each objFile In objFiles
fn=objFile.Filename
arr=split(fn,"."
fn2=""
For i=0 To Ubound(arr)-1
fn2=fn2 & arr(i) & "."
Next
objFSO.MoveFile path & fn, path & fn2 & new_ext
Next
Set objFile=Nothing
Set objFolder=Nothing
Set objFSO=Nothing
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа:
 Николай
![]()
![]()
![]()
![]()
![]()
![]()
Вопросов: 3
Ответов: 5
      
 Профиль |  | #3
       
Добавлено:  12.12.06 11:16
       
    
       
  
Здравствуйте.
 
    
Спасибо за ответ. У меня возникла следующая проблема со скриптом:
Строка: 9
Ошибка: Объект не поддерживает это свойство или метод: 'objFile.Filename'
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа:
 Николай
![]()
![]()
![]()
![]()
![]()
![]()
Вопросов: 3
Ответов: 5
      
 Профиль |  | #4
       
Добавлено:  12.12.06 11:42
       
    
       
  
Поменял
 
    
fn=objFile.Filename 
на
fn=objFSO.GetFile(objFile).Name
ошибка исчезла, но меняет только расширение 
		
	  
			 
	
		 
    
       
    
Номер ответа: 5 
      
Автор ответа:
 JMP
![]()
![]()
Вопросов: 6
Ответов: 171
      
 Профиль |  | #5
       
Добавлено:  12.12.06 12:07
       
    
       
  
Судя по всему по ссылке 
 
    
http://wincmd.ru/forum/viewtopic.php?p=6875&sid=210c7cfaec87ccbfa44a14819a0e00a3
не ходили 
Посмотрите там пост от Batya, отвечено на все ваши вопросы и даже больше.
		
	  
			 
	
		 
    
       
    
Номер ответа: 6 
      
Автор ответа:
 Шпион
![]()
ICQ: 250543104 
Вопросов: 13
Ответов: 118
      
 Профиль |  | #6
       
Добавлено:  12.12.06 12:07
       
    
       
  
Да, извините, действительно, достаточно изменить Filename на Name и все прекрасно работает.
 
    
тогда вопрос, сколько нулей впереди должно быть?
т.е. формат имени файла 8.3?
Если да, то:
надо кусочек
For Each objFile In objFiles 
fn=objFile.Filename 
arr=split(fn,"."
 
fn2="" 
For i=0 To Ubound(arr)-1 
fn2=fn2 & arr(i) & "." 
Next 
objFSO.MoveFile path & fn, path & fn2 & new_ext 
Next 
заменить на:
For Each objFile In objFiles
	fn=objFile.name 
	z=z+1
	zz=ltrim(z)
If len(z)=8 Then
	fn2=z & new_ext
ElseIf Len(z)<8 Then
	fn2=String(8-Len(z),"0"
 & Ltrim(z) & new_ext
Else
	Wscript.Quit
End If
objFSO.MoveFilepath & fn, path & fn2
next
		
	  
			 
	
		 
    
       
    
Номер ответа: 7 
      
Автор ответа:
 Шпион
![]()
ICQ: 250543104 
Вопросов: 13
Ответов: 118
      
 Профиль |  | #7
       
Добавлено:  12.12.06 12:08
       
    
       
  
черт! пробел потерял. внимательнее в последнем кусочке кода
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 8 
      
Автор ответа:
 Николай
![]()
![]()
![]()
![]()
![]()
![]()
Вопросов: 3
Ответов: 5
      
 Профиль |  | #8
       
Добавлено:  12.12.06 12:36
       
    
       
  
Спасибо. Заработало.