Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] ЗАпись строк в файл (http://forum.oszone.net/showthread.php?t=331215)

nomad656 14-11-2017 16:32 2777540

ЗАпись строк в файл
 
Добрый день
Имеется две строчки в неком файле
Monitor Model: V193
Monitor Model: Acer V173

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

Iska 14-11-2017 17:07 2777545

Цитата:

Цитата nomad656
в неком файле »

Упакуйте файл в архив и приложите к сообщению.

Цитата:

Цитата 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


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

alpap 14-11-2017 17:19 2777548

Код:

@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 2777562

Код:

@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.

Время: 14:19.
© OSzone.net 2001-