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

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

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

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


???
Если да, как правильно связать функцию InStr с основным кодом?
...
Рейтинг: 0 / 0
vbs скрипт, удаляющий файлы с определенным расширением
    #38250850
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
vbs скрипт, удаляющий файлы с определенным расширением
    #38250852
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
vbs скрипт, удаляющий файлы с определенным расширением
    #38250855
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у bazile вариант лучше, удаляет из всех подпапок.
...
Рейтинг: 0 / 0
vbs скрипт, удаляющий файлы с определенным расширением
    #38251045
smarton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile, благодарю за помощь.
Скрипт выдает ошибку на 21 строке - несоответствие типа. Что не так?

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

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

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

с Днем Победы! Это несложно сделать, я потом напишу.
...
Рейтинг: 0 / 0
vbs скрипт, удаляющий файлы с определенным расширением
    #38254172
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
vbs скрипт, удаляющий файлы с определенным расширением
    #38254593
smarton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
user89, спасибо! Все отлично работает. С меня причитается, как договаривались! :)
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / vbs скрипт, удаляющий файлы с определенным расширением
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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