Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как получить данные из строки

Ответить
Настройки темы
CMD/BAT - [решено] Как получить данные из строки

Новый участник


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

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


Здравствуйте, пытаюсь получить post ID из ссылки.
Ссылки вида:
Код: Выделить весь код
https://subd.site.com/some-variably-long-name-2024886/
или например пикабу
https://pikabu.ru/story/derzhatsya_netu_bolshe_sil_7656656/
https://pikabu.ru/story/otvet_na_post_pozhiznennoe_pravo_na_mesto_v_ocheredi_7657274/
Подскажите пожалуйста как получить в переменной только post id то есть только цифры.
Для каждого сайта будет свой скрипт.

Отправлено: 19:45, 17-08-2020

 

Забанен


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

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


Uragan66, указывать искать число как группу не обязательно, достаточно будет \d{7}. Пренебрегать булевым значением, отправляя его в null, не самая лучшая практика (но на вкус и цвет). А вообще в pwsh всё можно уместить в одно выражение:
Код: Выделить весь код
$id = 'https://subd.site.com/some-variably-long-name-2024886/?sorting=best' -match '\d{7}' ? $matches[0] : $null
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:49, 18-08-2020 | #11



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

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


Новый участник


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

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


Всем спасибо большое.
Способ Форинера оказался универсальным и надёжным.
Задача решена.

Отправлено: 13:58, 18-08-2020 | #12


Ветеран


Contributor


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

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


Цитата ateka:
Факт что пошик круче смд. Но у меня сейчас системно учиться возможности нет. »
Ежели хочется CMD, то вот гибрид bat и js, сохранить как bat-файл
Код: Выделить весь код
@set @E=1; /*

@Echo Off
cls
	Set "U1=https://subd.site.com/some-variably-long-name-2024886/"
	Set "U2=https://pikabu.ru/story/derzhatsya_netu_bolshe_sil_7656656/"
	Set "U3=https://pikabu.ru/story/otvet_na_post_pozhiznennoe_pravo_na_mesto_v_ocheredi_7657274/"
	Set "U4=https://subd.site.com/some-variably-long-name-2024886/?sorting=best"

	FOR /F "usebackq delims=/" %%i IN (`Cscript //NoLogo /E:jscript "%~dpnx0" "%U1%"`) DO Set "Out1=%%i"
	FOR /F "usebackq delims=/" %%i IN (`Cscript //NoLogo /E:jscript "%~dpnx0" "%U2%"`) DO Set "Out2=%%i"
	FOR /F "usebackq delims=/" %%i IN (`Cscript //NoLogo /E:jscript "%~dpnx0" "%U3%"`) DO Set "Out3=%%i"
	FOR /F "usebackq delims=/" %%i IN (`Cscript //NoLogo /E:jscript "%~dpnx0" "%U4%"`) DO Set "Out4=%%i"

	Echo "%Out1%"
	Echo "%Out2%"
	Echo "%Out3%"
	Echo "%Out4%"
Pause
Exit /B
*/

var oArg = WScript.Arguments;
WScript.Echo(Uid(oArg(0)));

function Uid(U) {
	var rez = /(\d{7})\//.exec(U);
	try {return rez[0]};
	catch (e) {return " "}
}
Краткости увы нет.
Цитата Foreigner:
CMD и строки это садомазохизм. »

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


Последний раз редактировалось megaloman, 18-08-2020 в 19:26. Причина: Некорректно сохранялся код скрипта

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

Отправлено: 16:20, 18-08-2020 | #13


Забанен


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

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


megaloman, странный гибрид, право. try/catch, да ещё и сами строки отчего-то не в контексте js... Если и гибридить, то с "чакрой".
Код: Выделить весь код
0</* :
@cscript /nologo /e:{1b7cd997-e5ff-4932-a7a6-2a9e636da385} "%~f0" & exit /b */0;
'use strict';
let arr = [
   'https://subd.site.com/some-variably-long-name-2024886/',
   'https://pikabu.ru/story/derzhatsya_netu_bolshe_sil_7656656/',
   'https://pikabu.ru/story/otvet_na_post_pozhiznennoe_pravo_na_mesto_v_ocheredi_7657274/',
   'https://subd.site.com/some-variably-long-name-2024886/?sorting=best'
];
WScript.echo(arr.map(s => s.match(/\d{7}/)));
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:31, 18-08-2020 | #14



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как получить данные из строки

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Как из командной строки получить email пользователя? TabulaMinds Скриптовые языки администрирования Windows 8 10-02-2017 15:02
CMD/BAT - Как из for получить значение из одной строки смещаясь на 1 при каждом проходе Voodooman Скриптовые языки администрирования Windows 18 28-08-2011 05:54
VBS/WSH/JS - как получить время и из строки в логе с определенным событием mitiya Скриптовые языки администрирования Windows 8 10-01-2011 14:49
[решено] Как получить данные в скрипт из командной строки? madmasles AutoIt 2 27-11-2009 15:50
Как получить данные из xml-файла? ptt Программирование и базы данных 1 14-10-2004 09:45




 
Переход