BATCH - Манипуляции со строками - PullRequest
0 голосов
/ 25 августа 2011

Мне нужна помощь в разбиении текста в вызове документа date_baseline.txt Содержимое этого файла:

1st Day = 2011-08-26
2nd Day = 2011-07-30
3rd Day = 2011-07-29

Мне нужно вынуть каждую из дат, показанных выше.Любые профессионалы со знанием партии?

спасибо заранее!

Ответы [ 3 ]

1 голос
/ 25 августа 2011

Если под «вынуть» вы имеете в виду «извлечь», хорошим началом будет следующее:

@setlocal enableextensions enabledelayedexpansion
@echo off
for /f "usebackq tokens=4" %%a in (input.txt) do (
    call :process %%a
)
endlocal
goto :eof

:process
    set myvar=%1
    echo !myvar!
    goto :eof

Это выводит:

2011-08-26
2011-07-30
2011-07-29

Функцию process можно изменить, чтобы сделать все, что вы пожелаете. На данный момент он просто сохраняет его в переменной, а затем печатает, но вы можете выполнить на нем произвольно сложную обработку.

1 голос
/ 25 августа 2011

Вот, пожалуйста!

for /f "tokens=3 delims== " %i in (date_baseline.txt) do @echo %i

Если вы хотите поместить это в пакетный файл,

@echo off

for /f "tokens=3 delims== " %%i in (date_baseline.txt) do (
    echo %%i
)

Обратите внимание, что просто извлекая последний фрагмент,3 достаточно.

0 голосов
/ 25 августа 2011

Вы можете использовать vbscript,

Set objFS=CreateObject("Scripting.FileSystemObject")
strFile = "c:\test\file"
Set objFile = objFS.OpenTextFile(strFile)
Do Until objFile.AtEndOfLine
    strLine= objFile.ReadLine
    s = Split(strLine,"=")
    WScript.Echo s(1) 'display the date column
Loop
objFile.Close
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...