Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Bat файл. Извлечь часть строковой переменной с двумя процентами (http://forum.oszone.net/showthread.php?t=353737)

chaynick 21-06-2023 09:44 3010921

Bat файл. Извлечь часть строковой переменной с двумя процентами
 
Доброго времени суток!
Чтобы было нагляднее приведу пример:
For /f "tokens=1" %%i in (test.txt) do (
If %%i:~0,3 == abc echo найдено > 1.txt
)
У меня не работает в чем причина?
Вариант %i:~0,3% успешно находит подстроку abc

NickM 21-06-2023 10:18 3010925

Такая "лапша" отработает правильно?
Код:

@echo off
setlocal enableextensions enabledelayedexpansion
For /f "tokens=1" %%i in (test.txt) do (
set aa=%%i
set bb=!aa:~0,3!
If !bb! == abc echo найдено >> 1.txt
)

UPD: убрал . после echo

oleg-k41 21-06-2023 21:00 3010971

Увы, эта " лапша" не работает. Опишу кратко задачу: есть текстовый файл в котором одна из строк начинается на abc. Нужно скопировать все строки расположенные ниже в другой текстовый файл.Буду признателен если кто-то откликнется.

NickM 21-06-2023 21:10 3010973

Цитата:

Цитата oleg-k41
не работает. »

А должна была сработать именно так, как было указано в начальном поcте, но раз задача поменялась, то это уже не имеет значения:

NickM 21-06-2023 21:33 3010978

Ищем первое вхождение подстроки, после пропускаем n-ое количество строк:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion
set /a icount=0
For /f "tokens=1" %%i in (test.txt) do (
set /a icount+=1
set aa=%%i
set bb=!aa:~0,3!
if !bb! == abc call :printfile
)

:printfile
For /f "tokens=* skip=%icount%" %%j in (test.txt) do (
echo.%%j
)
exit

Код не блещет изяществом, конечно - как думал, так и писал :sorry:

Anton04 22-06-2023 10:43 3010999

Коллеги, а не переместиться ли Вам в профильную тему?
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows

oleg-k41 22-06-2023 11:46 3011004

Цитата:

как думал, так и писал
Спасибо. вечером попробую.

<img>


Время: 23:56.

Время: 23:56.
© OSzone.net 2001-