Доброго дня!
Есть дурацкая задача - в каталог (мусорка, разных файлов много) падают определенные файлы (по имени) определенной структуры.
Задача- в шедулере поставить батник, который при наличии таких файлов (от 0 до 30 в определенный момент времени) считывал первую строку, из нее вычленял несколько символов из нескольких позиций и в зависимости от значений делал какие-либо манипуляции с файлом (в основном - копирование с посылом сообщения).
Проблемы - файла начинаются с ~, внутри файла - разделитель |
(пример первой строки файлов
1|20210727|131511|YSN20802.742|898|898|0
1|20210727|115807|YSB20847.742|35|35|0
1|20210727|115801|YTI20825.742|5140|5140|0)
Нужно вытащить с 3 символа 18-й позиции и 2 символа с 24-й
Столкнулся с чем:
1. Если работать напрямую с файлом, то вроде норм
set /p val=echo YSN
YSN
D:\cmail>echo 02
02
D:\cmail>pause
Для продолжения нажмите любую клавишу . . .
2. если работать с циклом, то начинается приколизм
@echo off
rem Setlocal Enabledelayedexpansion Enableextensions
if not exist D:\111\?Y*.* goto end
rem echo.%%i
for %%i in ("D:\111\?Y*.*") do (
set val=
set val1=
set val2=
echo.begin
echo.%%i
set /p val=
CMD/BAT - Скрипт, читающий некоторые символа в первой строке нескольких файлов.
-
alpap
Re: CMD/BAT - Скрипт, читающий некоторые символа в первой строке нескольких файлов.
1.
пример файла в архиве чтобы видеть его структуру, кодировку и расширение
2.
Цитата Alexeyshka:
Нужно вытащить
куда? В отдельный файл или что делать с этим.
3.
четко не понятно что делать в цикле, кроме как вычленять что-то из файлов, а какие файлы выбирать, откуда, по какой маске или какому критерию и в какой промежуток времени, если это будет из планировщика. Или это сами сделаете?
пример файла в архиве чтобы видеть его структуру, кодировку и расширение
2.
Цитата Alexeyshka:
Нужно вытащить
CMD/BAT - Скрипт, читающий некоторые символа в первой строке нескольких файлов.
куда? В отдельный файл или что делать с этим.
3.
четко не понятно что делать в цикле, кроме как вычленять что-то из файлов, а какие файлы выбирать, откуда, по какой маске или какому критерию и в какой промежуток времени, если это будет из планировщика. Или это сами сделаете?
-
megaloman
Re: CMD/BAT - Скрипт, читающий некоторые символа в первой строке нескольких файлов.
Код:
Alexeyshka,
Ваш вариант
[spoiler]Код: [/spoiler]
или так:
Код:
Если хочется увидеть на экране первую строку, то в Echo её надо взять в кавычки, так как символ "|" служебный
Код:
или так:
Код:
Код: Выделить всё
@Echo Off
cls
Set "FileIn=Z:\Box_In\~???????.???"
For %%f In ("%FileIn%") Do Call :OutFirst "%%f" 18 3 24 2
Pause
Exit /B 0
:OutFirst
Set /P First=Alexeyshka,
Ваш вариант
[spoiler]Код: [/spoiler]
Код: Выделить всё
@Echo Off
cls
For %%i In ("Z:\Box_In\~y??????.???") Do (
Set /P val=или так:
Код:
Код: Выделить всё
@Echo Off
cls
SetLocal EnableExtensions EnableDelayedExpansion
For %%i In ("Z:\Box_In\~y??????.???") Do (
Set /P val=Если хочется увидеть на экране первую строку, то в Echo её надо взять в кавычки, так как символ "|" служебный
Код:
Код: Выделить всё
Call Echo %%val1%% %%val2%% %%i "%%val%%"или так:
Код:
Код: Выделить всё
@Echo Off
cls
For %%i In ("Z:\Box_In\~y??????.???") Do Set /P val=