Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Необходимо найти все строки которые начинаются с "download:"https:" и заканчиваются

Ответить
Настройки темы
VBS/WSH/JS - [решено] Необходимо найти все строки которые начинаются с "download:"https:" и заканчиваются

Аватара для angel_lyucifer

Старожил


Сообщения: 175
Благодарности: 4


Конфигурация

Профиль | Отправить PM | Цитировать


Здравствуйте, нужна ваша помощь.
Есть текстовый файл сгенерированный программой, вид содержимого файла:
Код: Выделить весь код
{'title':'Эпизод 1', 'file':'[1080p]//de2.anilibria.tv/videos/ts/8374/0001-hd/playlist.m3u8,[720p]//de2.anilibria.tv/videos/ts/8374/0001/playlist.m3u8,[480p]//de2.anilibria.tv/videos/ts/8374/0001-sd/playlist.m3u8', download:"https://x.anilibria.tv/get/3BdXdlP0bs4wlKyjQcXZpA/1557795967/mp4/8374/0001.mp4?download=Hitoribocchi no Marumaru Seikatsu-1-sd.mp4", 'id': 's1'},
{'title':'Эпизод 2', 'file':'[1080p]//de2.anilibria.tv/videos/ts/8374/0002-hd/playlist.m3u8,[720p]//de2.anilibria.tv/videos/ts/8374/0002/playlist.m3u8,[480p]//de2.anilibria.tv/videos/ts/8374/0002-sd/playlist.m3u8', download:"https://x.anilibria.tv/get/ciP3toJ3rI3-x25Rqxxa0g/1557795967/mp4/8374/0002.mp4?download=Hitoribocchi no Marumaru Seikatsu-2-sd.mp4", 'id': 's2'},
{'title':'Эпизод 3', 'file':'[1080p]//de2.anilibria.tv/videos/ts/8374/0003-hd/playlist.m3u8,[720p]//de2.anilibria.tv/videos/ts/8374/0003/playlist.m3u8,[480p]//de2.anilibria.tv/videos/ts/8374/0003-sd/playlist.m3u8', download:"https://x.anilibria.tv/get/2xTCA5dY7tiA634RtlXrTw/1557795967/mp4/8374/0003.mp4?download=Hitoribocchi no Marumaru Seikatsu-3-sd.mp4", 'id': 's3'},
{'title':'Эпизод 4', 'file':'[1080p]//de2.anilibria.tv/videos/ts/8374/0004-hd/playlist.m3u8,[720p]//de2.anilibria.tv/videos/ts/8374/0004/playlist.m3u8,[480p]//de2.anilibria.tv/videos/ts/8374/0004-sd/playlist.m3u8', download:"https://x.anilibria.tv/get/Zgk0waIDnyzpgH4K3QM1hw/1557795967/mp4/8374/0004.mp4?download=Hitoribocchi no Marumaru Seikatsu-4-sd.mp4", 'id': 's4'},
{'title':'Эпизод 5', 'file':'[1080p]//de2.anilibria.tv/videos/ts/8374/0005-hd/playlist.m3u8,[720p]//de2.anilibria.tv/videos/ts/8374/0005/playlist.m3u8,[480p]//de2.anilibria.tv/videos/ts/8374/0005-sd/playlist.m3u8', Hitoribocchi no Marumaru Seikatsu-5-sd.mp4",
=Hitoribocchi no Marumaru Seikatsu-5-sd.mp4", 'id': 's5'}
Необходимо найти все строки которые начинаются с "download:"https:" и заканчиваются на ".mp4"," и удалить их.
Например чтобы были удалены только строки такого вида:
Код: Выделить весь код
download:"https://x.anilibria.tv/get/z0k5b2jejzcDn4Ul35wXTg/1557778143/mp4/8330/0006.mp4?download=Midara na Ao-chan wa Benkyou ga Dekinai-6-sd.mp4",
Количество строк каждый раз разные....

-------
Век живи, век учись! =)


Отправлено: 05:52, 12-05-2019

 

Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Имя файла можно прописывать явным образом в скрипте, либо указывать в аргументе скрипта в кавычках при вызове, либо создать, например, на рабочем столе значок на этот скрипт и в проводнике затягивать на него мышкой обрабатываемый файл
Код: Выделить весь код
FileIn = "Z:\Box_In\Исходный файл.txt"
S1 = "download:""https:"
S2 = ".mp4"","

With WScript.Arguments
    If .Count <> 0 Then FileIn = .Item(0)
End With

With CreateObject("Scripting.FileSystemObject")
    On Error Resume Next
    With .OpenTextFile(FileIn, 1)
        If Err.Number <> 0 Then
            MsgBox "Error open file " + vbCrLf + vbCrLf + FileIn + vbCrLf + vbCrLf + "Код ошибки " + CStr(Err.Number) + vbCrLf + Err.Description
            WScript.Quit 1
        End If
        InTxt = .ReadAll
        If Err.Number <> 0 Then
            MsgBox "Error read file " + vbCrLf + vbCrLf + FileIn + vbCrLf + vbCrLf + "Код ошибки " + CStr(Err.Number) + vbCrLf + Err.Description
            WScript.Quit 1
        End If
        .Close
        On Error GoTo 0
    End With
    
    Mas = Split(InTxt, vbCrLf)
    With .CreateTextFile(FileIn, True)
        For Each iMas In Mas
            If Not (InStr(1, iMas, S1) = 1 And (InStrRev(iMas, S2) + Len(S2) - 1) = Len(iMas)) Then
                .WriteLine iMas
            End If
        Next
        .Close
    End With
End With

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 12-05-2019 в 15:24.


Отправлено: 15:16, 12-05-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
findstr /V /R "^download:\"https.*mp4\",$" text.txt

Отправлено: 15:20, 12-05-2019 | #3


Аватара для angel_lyucifer

Старожил


Сообщения: 175
Благодарности: 4

Профиль | Отправить PM | Цитировать


Цитата megaloman:
Имя файла можно прописывать явным образом в скрипте, либо указывать в аргументе скрипта в кавычках при вызове, либо создать, например, на рабочем столе значок на этот скрипт и в проводнике затягивать на него мышкой обрабатываемый файл »
Скрипт запускается, но ничего не происходит.
А расширение вашего скрипта vbs?

Код: Выделить весь код
FileIn = "Z:\Box_In\Исходный файл.txt"
S1 = "download:""https:"
S2 = ".mp4"","

With WScript.Arguments
    If .Count <> 0 Then FileIn = .Item(0)
End With

With CreateObject("Scripting.FileSystemObject")
    On Error Resume Next
    With .OpenTextFile(FileIn, 1)
        If Err.Number <> 0 Then
            MsgBox "Error open file " + vbCrLf + vbCrLf + FileIn + vbCrLf + vbCrLf + "Код ошибки " + CStr(Err.Number) + vbCrLf + Err.Description
            WScript.Quit 1
        End If
        InTxt = .ReadAll
        If Err.Number <> 0 Then
            MsgBox "Error read file " + vbCrLf + vbCrLf + FileIn + vbCrLf + vbCrLf + "Код ошибки " + CStr(Err.Number) + vbCrLf + Err.Description
            WScript.Quit 1
        End If
        .Close
        On Error GoTo 0
    End With
    
    Mas = Split(InTxt, vbCrLf)
    With .CreateTextFile(FileIn, True)
        For Each iMas In Mas
            If Not (InStr(1, iMas, S1) = 1 And (InStrRev(iMas, S2) + Len(S2) - 1) = Len(iMas)) Then
                .WriteLine iMas
            End If
        Next
        .Close
    End With
End With

-------
Век живи, век учись! =)


Отправлено: 00:48, 13-05-2019 | #4


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


angel_lyucifer, расширение vbs, заархивируйте и дайте образец Вашего файла, так можно сто лет гадать, в чем дело.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:25, 13-05-2019 | #5


Аватара для angel_lyucifer

Старожил


Сообщения: 175
Благодарности: 4

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: zip playlist.zip
(559 байт, 5 просмотров)

Цитата megaloman:
заархивируйте и дайте образец Вашего файла, так можно сто лет гадать, в чем дело. »
Ок, вот.

-------
Век живи, век учись! =)


Отправлено: 06:12, 13-05-2019 | #6


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1171
Благодарности: 487

Профиль | Отправить PM | Цитировать


Цитата angel_lyucifer:
Ок, вот. »
в этом файле всего одна строка, поэтому никаких строк:
Цитата angel_lyucifer:
найти все строки которые начинаются с "download:"https:" и заканчиваются на ".mp4"," »
найдено не будет, т.к. они попросту не существуют в таком виде.

-------
scio me nihil scire. Ѫ


Отправлено: 07:12, 13-05-2019 | #7


Аватара для angel_lyucifer

Старожил


Сообщения: 175
Благодарности: 4

Профиль | Отправить PM | Цитировать


Цитата YuS_2:
найдено не будет, т.к. они попросту не существуют в таком виде. »
Я вас понял, но всё же необходимо удалить все эти фрагменты в строке...

-------
Век живи, век учись! =)


Отправлено: 00:24, 14-05-2019 | #8


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата angel_lyucifer:
необходимо удалить все эти фрагменты в строке... »
Так это совсем другое дело, нежели озвученное ранее:
Цитата angel_lyucifer:
Необходимо найти все строки которые начинаются с "download:"https:" и заканчиваются на ".mp4"," и удалить их. »
На PowerShell:
Код: Выделить весь код
(Get-Content -Path 'C:\Мои проекты\0261\playlist.txt') -replace "download:`"https://.*?\.mp4`", " | Set-Content -Path 'C:\Мои проекты\0261\playlist2.txt'
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:05, 14-05-2019 | #9


Аватара для angel_lyucifer

Старожил


Сообщения: 175
Благодарности: 4

Профиль | Отправить PM | Цитировать


Цитата Iska:
На PowerShell: »
А можно ли на языке vbs?

-------
Век живи, век учись! =)


Отправлено: 05:34, 14-05-2019 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Необходимо найти все строки которые начинаются с "download:"https:" и заканчиваются

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Как из строки в .txt вывести символы "которые там обновляются"в другой .txt Bombastig Скриптовые языки администрирования Windows 6 08-02-2014 04:54
Интерфейс - [решено] Нет "стеклянного" эффекта при наведении на "Свернуть все окна" aka_smile Microsoft Windows 7 5 21-09-2012 11:49
Не получается найти все выпуски "Хакер"+"спец"+"железо" verdix Хочу все знать 5 29-11-2008 15:19
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") submaster Microsoft Windows NT/2000/2003 5 13-09-2006 12:29




 
Переход