ЗАпись строк в файл
Добрый день
Имеется две строчки в неком файле
Monitor Model: V193
Monitor Model: Acer V173
Необходимо записать содержимое каждой в отдельные файлы (построчно) или записать все то, что стоит после двоеточия в два отдельных файла
Возможно ли такое? Подскажите, пожалуйста
|
Упакуйте файл в архив и приложите к сообщению.
Цитата:
Цитата nomad656
записать все то, что стоит после двоеточия в два отдельных файла »
|
Скрытый текст
Код:
@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
Путь к исходному файлу задаётся параметром пакетного файла (также можно просто перетянуть исходный файл на пакетный файл в Проводнике).
|
Код:
@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
|
Код:
@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
|
Время: 14:19.
© OSzone.net 2001-