Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - ASP и VBScript

Страница: 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
Можно ли это написать на VBS и запустить фоновым процессом в Windows? Предназначен ли для этого VBS? И если это не очень сложно то помогите с кодом


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
Спасибо. Заработало.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам