|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Отбор файлов по расширению, последующее их удаление. |
|
VBS/WSH/JS - Отбор файлов по расширению, последующее их удаление.
|
Новый участник Сообщения: 1 |
Есть вот такой скриптик но гад не хочет работать, выдает синтаксическую ошибку на 8 строке в 1 символе.
Обьясните ламеру что не так, может у кого есть примеры свойх скриптов. Вообще задача такая есть папка с кучей подпапок и файлов, необходимо из всего этого мусора отобрать файлы по расширению(ям), собрать их в одном месте, грохнуть все потом разом. Set FSO = CreateObject("Scripting.FileSystemObject") sEXT ="mp3" sDIR ="d:\temp1" sNEW ="d:\temp" Set objDIR =GetFolder(sDIR) GoSubFolder objDIR Sub MainSub (objDIR) For Each efile in objDIR.files fNAME=efile fEXT =FSO.GetExtensionName(efile.Path) if LCase (fEXT)= LCase(sEXT) Then sEXIST= sNEW & efile.NAME if ((FSO.FileExists(sEXIST)) AND (efile<>sEXIST)) Then delFile sEXIST End if On Error Resume Next MoveFile efile. sNEW Next End Sub |
|
Отправлено: 07:40, 03-03-2010 |
Старожил Сообщения: 267
|
Профиль | Отправить PM | Цитировать Цитата SaintVictor:
![]() или по этой же схеме вместо удаления нажать Ctrl+X Ctrl+V куда надо |
|
Отправлено: 08:11, 22-05-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата SaintVictor:
Цитата SaintVictor:
Set oFSO = CreateObject("Scripting.FileSystemObject") MoveByExt "d:\temp1", "d:\temp", "mp3" Sub MoveByExt(sDirFrom, sDirTo, sFileExt) Dim oS, cS, oD, sD, oI, cF If Not oFSO.FolderExists(sDirTo) Then oFSO.CreateFolder(sDirTo) Set oS = oFSO.GetFolder(sDirFrom) Set oD = oFSO.GetFolder(sDirTo) Set cS = oS.SubFolders On Error Resume Next For Each oI In cS MoveByExt oI.Path, sDirTo, sFileExt Next Set cF = oS.Files For Each oI In cF If StrComp(oFSO.GetExtensionName(oI.Path),sFileExt,1)=0 Then oI.Move(oD.Path &"\") Next End Sub |
||
Отправлено: 10:10, 22-05-2010 | #3 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Просто получается решить задачу с помощью батника.
@Echo Off Set Fold=E:\Delete\ Set Ext=avi Set FoldExt=%Fold:~0,-1%.%Ext%\ FOR /F "usebackq delims=" %%i IN (`dir "%Fold%" /A:D /B /s`) DO Call :SubDir "%%~fi" "%%i" GoTo :EOF :SubDir Set L=True Set ff=%~1 Set ff=%FoldExt%%ff:~3%\ FOR %%s IN ("%~1\*.%Ext%") DO ( If %L%==True Md "%ff%" >Nul 2>Nul Set L=False Move /Y "%%~fs" "%ff%" >Nul ) И туда перемещаем все файлы с указанным расширением, сохраняя дерево директорий. Зачем? - сохраняем в целостности одноимённые файлы, да и вернуть всё назад при этом очень просто-ничего необратимого при этом мы не делаем. Впоследствии убить директорию - нет проблем. |
------- Отправлено: 13:21, 22-05-2010 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Запрет записи файлов на сетевые ресурсы по расширению | Arkan190 | Microsoft Windows NT/2000/2003 | 6 | 20-06-2011 10:58 | |
Доступ - Простой запрет копирования файлов по расширению | Dimly | Microsoft Windows 2000/XP | 2 | 17-08-2009 09:09 | |
Разное - Всегда скрывать определенный тип файлов по расширению | garkin123 | Microsoft Windows Vista | 3 | 23-05-2009 01:49 | |
[решено] Поиск файлов в подпапках и их последующее копирование | D_Master | AutoIt | 4 | 10-02-2009 07:32 | |
Фильтр по расширению файлов для Win 2003 | L13 | Microsoft Windows NT/2000/2003 | 2 | 07-06-2006 10:46 |
|