2015-12-07 5 views
0

Я хочу, чтобы сценарий переместил все файлы (все расширения файлов *.*) старше 5 минут из папки INN и папки ERROR. В моем примере C:\CopyFlow\Directory test\Inn\ к C:\CopyFlow\Directory test\Inn\ErrorПереместить файлы старше x минут

Так что я понял, как перемещение файлов и как найти файлы старше х время после просмотра его. Howover, ставя это вместе, является проблемой для меня. Кто-нибудь знает, как я могу это прибить?

Это то, что я до сих пор ...

Dim age_threshold 
age_threshold = 5 
Dim folder_path 
folder_path = WScript.Arguments(0) 
Dim fso, f 
Set fso = CreateObject("Scripting.FileSystemObject") 
Set f = fso.getFolder(folder_path) 
Dim old_file_not_found 
old_file_found = 0 
For Each file in f.Files 
    Dim age 
    age = DateDiff("n", file.DateLastModified, Now) 
    If age > age_threshold Then 
    old_file_found = 1 
    .MoveFile "C:\CopyFlow\Directory test\Inn\*.*", "C:\CopyFlow\Directory test\Inn\Error" 
    Exit for 
    end if 
Next 
WScript.Quit 

Я привык к партии, так что это немного греческий для меня (источник http://www.evalesco.com/check-any-file-older-x-minutes-directory).

Теперь, где установить (dim?) Мою папку INN и ERROR в этом скрипте? И я уверен, что if age, за которым следует .movefile, неверно, поэтому мне, вероятно, нужна небольшая коррекция.

error_running_script

Update Что отсутствует в изображении обратная косая черта после ошибки (\error\) в move.file линии.

ответ

2

Вы не можете вызывать методы без объекта, предоставляющего метод, поэтому .MoveFile должен быть fso.MoveFile. Однако в его текущей форме скрипт будет перемещать все файлы с C:\CopyFlow\Directory test\Inn, если какой-либо из файлов в папке, переданной как аргумент скрипту, старше 5 минут.

Что вам нужно сделать, это передать C:\test\inn в качестве аргумента в сценарий, и двигаться только те файлы, которые на самом деле являются старше:

If age > age_threshold Then 
    file.Move "C:\test\inn\error\" 
End If 
+0

Спасибо за Ваш ответ. Однако из-за моей неопытности у меня возникают некоторые проблемы. Думаю, мне нужно сгладить мою папку INN. Это будет здесь? 'Установить f = fso.getFolder (« C: \ CopyFlow \ Directory test \ Inn »)' - и f.move, следует ли добавить в эту строку папку для гостиниц и ошибок? Как этот 'f.move 'C: \ CopyFlow \ Directory test \ Inn \" "C: \ CopyFlow \ Directory test \ Inn \ Error" ' – MadsTheMan

+1

Если вы не хотите передавать папку в качестве аргумента скрипту, вы может определить это так, да. Метод 'Move' должен вызываться для каждого файла, как в моем (обновленном) примере кода выше. –

+0

Огромное спасибо, что делает смысл. Я думаю, что он должен быть почти полным, но у меня есть небольшая проблема с файлом, чтобы проверить, работает ли он. «Ожидаемое завершение предложения» (непосредственно переводется). Я пробовал «выход для» и «конец, если», но может ли это быть больше, чем я пропал? Он ссылается на строку с файлом.move. – MadsTheMan

Смежные вопросы