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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Обработка созданного txt ( systeminfo ) (http://forum.oszone.net/showthread.php?t=246097)

mataranga 03-11-2012 13:42 2017832

Обработка созданного txt ( systeminfo )
 
Вложений: 1
Добрый день, подскажите пожалуйста как обработать файл ... NIKOLAY.TXT ...
Этот файл был получен путем bat файла
PHP код:

@echo off
chcp 866 
>nul
systeminfo 
/fo table>test.txt
if exist %COMPUTERNAME%.txt (set /P pset="%COMPUTERNAME%.txt already exist. Enter new name: ")
for /
"usebackq delims=" %%a in (test.txt) do chcp 1251>nulcall :convert "%%a"
del /q test.txt
chcp 866
>nul
pause
goto 
:eof
 
:convert
if defined pset goto :W
if not defined pset goto :E
:W
echo %~>>%pset%.txt
:E
echo %~>>%COMPUTERNAME%.txt 

Как сделать чтобы
  • Время работы системы: 0 дн., 18 час., 17 мин, 38 сек. -- вот этой строчки не было вообще
  • Процессор(ы): Число процессоров - 1.
    [01]: x86 Family 6 Model 15 Stepping 13 GenuineIntel ~2399 МГц -- вот эта строчка писалось бы как Процессор1: x86 Family 6...
    и если в дальнейшем будет Процессор2: .. тоже бы учитывать это
  • Исправление(я): Число установленных исправлений - 249. -- Вообще бы их не было, всех
  • Режим вывода команд на экран (ECHO) отключен -- убрать
  • Неизвестные сетевые адаптеры: Число сетевых адаптеров - 1. -- как и процессоры :
    Сетевой адаптер1: NVIDIA nForce 10/100/1000 Mbps Ethernet
    IP: 192.168.1.117

Или можно как то проще собрать информацию о системе?

mataranga 03-11-2012 13:53 2017833

Покопался в интернете нашел вот что:

PHP код:

set fname=NIKOLAY.txt
findstr 
/c:"Имя узла:" /c:"Название ОС" /c:"Версия ОС" %fname% > log.txt
del 
%fname%
move log.txt %fname

Как я правильно понял, он находит строку где есть "Название ОС" , "Версия ОС" и так далее
Пишет во временный файл, и переписывает старый...
Одно но, у меня конечный файл пустой...

Iska 03-11-2012 17:51 2017945

Возможные причины:

1. Несоответствие кодировок.
2. Некоторые версии «findstr.exe» не всегда корректно работают с кириллицей.

mataranga 04-11-2012 13:11 2018421

for /f "tokens=*" %%i in ('more +0 "1.txt"') do (echo %%i&exit) > out1.txt

как поменять, чтобы он не только первую строку брал, а еще какие я скажу?

for /f "tokens=*" %%i in ('more +0+1+2+3+4+5 "1.txt"') do (echo %%i&exit) > out1.txt
не работает

Iska 04-11-2012 14:08 2018464

Цитата:

Цитата mataranga
как поменять, чтобы он не только первую строку брал, а еще какие я скажу? »

Например, так:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

for %%i in (1 3 5 8) do (
        for /f "usebackq delims=" %%j in (`more.com +%%i "E:\Песочница\0198\test.txt"`) do (
                if not defined sFirstLine (
                        set sFirstLine=defined
                        echo %%j
                )
        )
        set sFirstLine=
)

endlocal
exit /b 0

Но намного быстрее — так:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq delims=[] tokens=1*" %%j in (`type "E:\Песочница\0198\test.txt" ^| find.exe /n /v ""`) do (
        for %%i in (1 3 5 8) do (
                if %%i equ %%j echo.%%k
        )
)

endlocal
exit /b 0


mataranga 04-11-2012 16:06 2018574

Благодарствую


Время: 18:08.

Время: 18:08.
© OSzone.net 2001-