Войти

Показать полную графическую версию : [решено] вывод диапазона строки


HollywooD-new
13-08-2013, 16:51
Стоит задача: из файла 1.txt выбрать значения строк которые находятся в квадратных кавычках [] и записывать их в другой файл
пример файла:
авс
123
[000]
dsa
[001]
qw1

получается только скопировать значения построчно из одного файла в другой, но вот как обратится к элементу строки не могу разобраться)
Set file=1.txt
For /F "usebackq tokens=* delims=" %%i In ("%file%") Do echo %%i >> test.txt
pause

либо использовать условие но при этом вся строка должна совпадать полностью

Set file=1.txt
For /F "usebackq tokens=* delims=" %%i In ("%file%") Do (IF %%i == 123 ( echo %%i >> test.txt ))
pause

Iska
13-08-2013, 17:08
пример файла: »
Это пример исходного файла. Каким должен получаться результирующий файл на основе этого исходного?

HollywooD-new
13-08-2013, 17:17
я хочу получить в файле text.txt
000
001

Iska
13-08-2013, 17:42
HollywooD-new, например, так:
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFile=%~1

if defined sSourceFile (
if exist "%sSourceFile%" (
set sDestFile=%~dp0text.txt

>"!sDestFile!" (
for /f "usebackq delims=[]" %%i in (
`type "%sSourceFile%" ^| findstr.exe /r /c:".*\[.*\].*"`
) do (
echo.%%i
)
)
) else (
echo Source file [%sSourceFile%] not found.
)
) else (
echo Usage: %~nx0 ^<Source file^>
)

endlocal
exit /b 0

Просто перетащите исходный файл на созданный пакетный файл.

HollywooD-new
13-08-2013, 17:50
не совсем понятно, что вы имеете ввиду.

код работает спасибо)

Iska
13-08-2013, 19:45
не совсем понятно, что вы имеете ввиду. »
Перетаскивание, drag-n-drop: Some Vision.avi (http://rghost.net/private/48094272/d2cbf81bf86fcdc91486d4b647e01255) (кодек: TSCC Codec (http://download.techsmith.com/tscc/tscc.exe)).

megaloman
14-08-2013, 00:38
@Echo Off

Set "FileName=txt.txt"
Set "FileName2=txt2.txt"

Del "%FileName2%" 2>Nul

SetLocal EnableExtensions EnableDelayedExpansion

FOR /F "tokens=1 usebackq delims=]" %%s in ("%FileName%") do (
Set "String=%%s"
Set "String=!String:*[=!"
If Not !String!==%%s Echo !String!>>"%FileName2%"
)




© OSzone.net 2001-2012