Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / vbs скрипт, удаляющий файлы с определенным расширением / 19 сообщений из 19, страница 1 из 1
06.05.2013, 19:33
    #38249510
smarton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vbs скрипт, удаляющий файлы с определенным расширением
Нужно написать vbs скрипт, который будет удалять все файлы в папках, кроме файла с расширением .jpg, название которого начинается на "0_" (без кавычек) ИЛИ имеет строго 6 символов в названии (желательно первое).

Детальнее
В папках, который будет сканировать скрипт, находятся файлы с расширениями:
.mp3
index.php
.jpg
_thumb.jpg
0_... .jpg (6 символов)
Удалить нужно все, кроме последнего файла, начинающегося на "0_" с расширением .jpg

Прошу помощи в написании.
...
Рейтинг: 0 / 0
06.05.2013, 19:36
    #38249512
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vbs скрипт, удаляющий файлы с определенным расширением
smarton, что именно у тебя не получается?
...
Рейтинг: 0 / 0
06.05.2013, 20:26
    #38249541
smarton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vbs скрипт, удаляющий файлы с определенным расширением
bazile, собственно, ничего не получается. Я не разбираюсь в vbs. Искал примеры реализации в интернете, но нахожу в основном скрипты удаления файлов старше N дней.
...
Рейтинг: 0 / 0
07.05.2013, 13:01
    #38250159
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vbs скрипт, удаляющий файлы с определенным расширением
smarton, для этого не нужен VBScript. Можно обойтись bat файлом:
Код: sql
1.
for /f "usebackq delims=" %%i in (`dir /s /b 0_*`) do if not %%~xi==.jpg del %%i
...
Рейтинг: 0 / 0
07.05.2013, 14:55
    #38250388
smarton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vbs скрипт, удаляющий файлы с определенным расширением
Почитав информацию на разных форумах, слепил все-таки из разных примеров VBScript, но не с удалением, а с переносом ненужных файлов из папки "dir" в папку "del". Однако так и не разобрался, как удалить все файлы с расширением jpg, КРОМЕ начинающихся на "0_" (без кавычек) - как прописать это правило.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Set oFSO = CreateObject("Scripting.FileSystemObject")
MoveByExt "d:\dir", "d:\del", "mp3"
MoveByExt "d:\dir", "d:\del", "php"
MoveByExt "d:\dir", "d:\del", "jpg"

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



bazile, спасибо! Попробую Ваш вариант. Но хочу уже домучить VBScript. Может подскажите, как задать удаление/перемещение файлов с расширением jpg, кроме начинающихся на "0_" . Еще раз спасибо!
...
Рейтинг: 0 / 0
07.05.2013, 15:26
    #38250451
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vbs скрипт, удаляющий файлы с определенным расширением
smarton, используй функцию InStr .

P.S. Мой bat файл неправильный, кстати :(. Он удалит все файлы начинающиеся с 0_, кроме .jpg.
...
Рейтинг: 0 / 0
07.05.2013, 18:29
    #38250806
smarton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vbs скрипт, удаляющий файлы с определенным расширением
bazile, попытался изучить и задействавать предложенную вами функцию InStr.
Правильно делаю:
Код: vbnet
1.
2.
3.
4.
Dim SearchString, SearchChar, MyPos
 SearchString ="*.jpg"
 SearchChar = "0_"
 MyPos = InStr(SearchString, SearchChar)


???
Если да, как правильно связать функцию InStr с основным кодом?
...
Рейтинг: 0 / 0
07.05.2013, 19:11
    #38250850
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vbs скрипт, удаляющий файлы с определенным расширением
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Option Explicit

Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")

Call DeleteFiles("C:\Path\To\Root")

Sub DeleteFiles(folderPath)
	Dim objFolder, objItem, objFolders, objFiles, fileExt
	Set objFolder = objFSO.GetFolder(folderPath)
	
	Set objFolders = objFolder.SubFolders
	For Each objItem In objFolders
		Call DeleteFiles(objItem.Path)
	Next
	
	Set objFiles = objFolder.Files
	For Each objItem In objFiles
		fileExt = objFSO.GetExtensionName(objItem.Path)

		If StrComp(fileExt, "jpg", vbTextCompare)<>0 Or InStr(objItem.Name, "0_", vbTextCompare) <> 1 Then
			objItem.Delete()
		End If
	Next
End Sub
...
Рейтинг: 0 / 0
07.05.2013, 19:14
    #38250852
user89
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vbs скрипт, удаляющий файлы с определенным расширением
smarton,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Option Explicit

' Оставить только файлы ".jpg", которые начинаются на "0"
Dim fso, fld, fc, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set fld = fso.GetFolder("c:\2\")
Set fc = fld.Files
For Each f In fc
  if not (Left(f.Name,1) = "0" and Right(f.Name,4) = ".jpg") then f.delete true
Next
...
Рейтинг: 0 / 0
07.05.2013, 19:16
    #38250855
user89
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vbs скрипт, удаляющий файлы с определенным расширением
у bazile вариант лучше, удаляет из всех подпапок.
...
Рейтинг: 0 / 0
07.05.2013, 23:19
    #38251045
smarton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vbs скрипт, удаляющий файлы с определенным расширением
bazile, благодарю за помощь.
Скрипт выдает ошибку на 21 строке - несоответствие типа. Что не так?

21 строка:
Код: vbnet
1.
		If StrComp(fileExt, "jpg", vbTextCompare)<>0 Or InStr(objItem.Name, "0_", vbTextCompare) <> 1 Then
...
Рейтинг: 0 / 0
07.05.2013, 23:25
    #38251050
smarton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vbs скрипт, удаляющий файлы с определенным расширением
user89, Вам тоже большое спасибо! Скрипт отлично работает, но, как Вы уже сказали, не удаляет файлы в подпапках. У меня все файлы находятся в подпапках с порядковым номером. Если не затруднит, можете дописать скрипт?
Сам, к сожалению, не смогу. Вы видели, какие я ошибки допускаю. Мне учить и учить VBScript.
...
Рейтинг: 0 / 0
08.05.2013, 13:04
    #38251654
user89
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vbs скрипт, удаляющий файлы с определенным расширением
smarton,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Option Explicit

Dim fso, RefFolder
Set fso = CreateObject("Scripting.FileSystemObject")
Set RefFolder = fso.GetFolder("c:\2\")
DelMusor(RefFolder)
Set fso = nothing

' Оставить только файлы ".jpg", которые начинаются на "0"
Sub DelMusor(MyPath)
  dim f, SubFolder

  For Each f in MyPath.Files
    if not (Left(f.Name,1) = "0" and Right(f.Name,4) = ".jpg") then f.delete true
  Next

  For Each SubFolder in MyPath.SubFolders
    DelMusor(SubFolder)
  Next  
End Sub



Сам я не очень хорошо знаю VBS. Скачайте в интернете файл Script56.CHM Там хорошо написано, с примерами.
Вот здесь много полезного. Например, Объектная модель FileSystemObject (FSO) и VBScript- сервер сценариев Windows
...
Рейтинг: 0 / 0
08.05.2013, 13:32
    #38251711
smarton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vbs скрипт, удаляющий файлы с определенным расширением
user89, все отлично работает, в том числе и удаление в подпапках по заданным критериям.
Если Вы из Украины, напишите мне в личку номер карточки банка или номер телефона - отблагодарю символической суммой :)
...
Рейтинг: 0 / 0
08.05.2013, 14:50
    #38251863
user89
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vbs скрипт, удаляющий файлы с определенным расширением
smarton,

я из России, но "здесь" личку не нашел :(
Напишите на sqluser89@gmail.com
...
Рейтинг: 0 / 0
08.05.2013, 23:33
    #38252442
smarton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vbs скрипт, удаляющий файлы с определенным расширением
user89, написал Вам на почту.

У меня еще одна просьба.
Можно с помощью VBScript изменять названия файлов (переименовывать)?
Необходимо, чтобы к названию всех файлов, находящихся в разных папках, добавлялась приставка 100_.
При этом файл должен копироваться. Например, существует файл 5564.jpg - скрипт копирует файл в эту же папку и присваивает ему имя 100_5564.jpg.
...
Рейтинг: 0 / 0
09.05.2013, 21:52
    #38252881
user89
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vbs скрипт, удаляющий файлы с определенным расширением
smarton,

с Днем Победы! Это несложно сделать, я потом напишу.
...
Рейтинг: 0 / 0
12.05.2013, 12:05
    #38254172
user89
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vbs скрипт, удаляющий файлы с определенным расширением
smarton,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Option Explicit

Dim fso, RefFolder
Set fso = CreateObject("Scripting.FileSystemObject")
Set RefFolder = fso.GetFolder("c:\2\")
Copy100(RefFolder)
Set fso = nothing

Sub Copy100(MyPath)
  dim f, SubFolder

  For Each f in MyPath.Files
     if Left(f.Name,4) <> "100_" then f.Copy MyPath + "\100_" + f.Name
  Next

  For Each SubFolder in MyPath.SubFolders
    Copy100(SubFolder)
  Next  
End Sub
...
Рейтинг: 0 / 0
13.05.2013, 00:32
    #38254593
smarton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vbs скрипт, удаляющий файлы с определенным расширением
user89, спасибо! Все отлично работает. С меня причитается, как договаривались! :)
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / vbs скрипт, удаляющий файлы с определенным расширением / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]