Войти

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


nomad656
14-11-2017, 16:32
Добрый день
Имеется две строчки в неком файле
Monitor Model: V193
Monitor Model: Acer V173

Необходимо записать содержимое каждой в отдельные файлы (построчно) или записать все то, что стоит после двоеточия в два отдельных файла
Возможно ли такое? Подскажите, пожалуйста

Iska
14-11-2017, 17:07
в неком файле »
Упакуйте файл в архив и приложите к сообщению.

записать все то, что стоит после двоеточия в два отдельных файла »
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFile=%~1

if defined sSourceFile (
if exist "%sSourceFile%" (
set /a iCount = 0

for /f "usebackq tokens=1* delims=:" %%i in (
`type "%sSourceFile%" ^| find.exe /i "Monitor Model:"`
) do (
set /a iCount += 1
>"%~n1.!iCount!.%~x1" echo %%j
)
) else (
echo Can't find source file [%sSourceFile%].
exit /b 2
)
) else (
echo Usage: %~nx0 ^<Source file^>
exit /b 1
)

endlocal
exit /b 0

Путь к исходному файлу задаётся параметром пакетного файла (также можно просто перетянуть исходный файл на пакетный файл в Проводнике).

alpap
14-11-2017, 17:19
@echo off
<"file.txt" (for /f "tokens=1,3* delims=[]: " %%a in ('find /n /v ""') do (
if %%a==1 (echo %%c>"%%a.txt") else (echo %%c>"%%a.txt")
)
)
pause

поиск строк не делал принимая как написано только две строки в файле.

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

@echo off
setlocal enabledelayedexpansion
<"file.txt" (for /f "tokens=1,3* delims=[]: " %%a in ('find /n /v ""^|find "Monitor Model:"') do (
set /a n=%%a
if %%a==!n! (echo %%c>"%%a.txt") else (echo %%c>"%%a.txt")
)
)
pause

megaloman
14-11-2017, 18:52
@Echo Off
Set "FileIn=Z:\Box_In\некий файл.txt"
Set "BoxOut=Z:\Box_Out"

Set "String=Monitor Model:"

Set /A N=1000
FOR /F "usebackq tokens=2,* delims=:" %%i IN (`FINDSTR /I /N /C:"%String%" "%FileIn%"`) DO Call :OutFile "%FileIn%" "%%i" "%%j"
GoTo :Eof

:OutFile
Set /A N+=1
>"%BoxOut%\%~n1_%N:~-3%-%~2.txt" Echo %~3
GoTo :Eof




© OSzone.net 2001-2012