[Цитировать]

    mat.86
  • 14134
  • Стаж: 8 лет 4 месяца
  • Сообщений: 225
  • Репутация:1

    [+] [-]
nikzzzz, да, так получилось. Теперь бы сделать, чтобы выскакивало диалоговое окно для указания папки реестра, ведь он может быть и не на диске С и облагородить вывод информации, было б хорошо чтобы батник выдавал запрос куда сохранить text.txt
Добавьте пробел
Findstr /l " IPAddress"
Не сработало

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
mat.86
Вообще-то Findstr использовать неправильно, будет куча мусора, лучще просто читать нужное средствами reg.exe
for /f "usebackq tokens=8 delims=\" %%A in (`reg query "HKLM\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces" /se #`) do call :PROCESS "%%A"
goto :EOF
:PROCESS
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces\%~1" /v "IPAddress"`) Do Echo %%J>>text.txt
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces\%~1" /v "SubnetMask"`) Do Echo %%J>>text.txt
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces\%~1" /v "DefaultGateway"`) Do Echo %%J>>text.txt
echo ->>text.txt
echo ----------------------------------------------->>text.txt
echo ->>text.txt
echo ->>text.txt
goto :EOF

[Цитировать]

    mat.86
  • 14134
  • Стаж: 8 лет 4 месяца
  • Сообщений: 225
  • Репутация:1

    [+] [-]
Да так лучше, почти чистый получается, но выводит такие строки: Режим вывода команд на экран (ECHO) включен.
-
-----------------------------------------------
-
-
-
-----------------------------------------------
-
-
Режим вывода команд на экран (ECHO) включен.
Режим вывода команд на экран (ECHO) включен.
-
-----------------------------------------------
-
-
10.107.23.36
255.255.255.0
10.107.23.1
-
-----------------------------------------------
-
-
Режим вывода команд на экран (ECHO) включен.
255.255.255.0
Режим вывода команд на экран (ECHO) включен.
-
-----------------------------------------------
-
-
-
-----------------------------------------------
-
-
-
-----------------------------------------------
-
-
-
-----------------------------------------------

[Цитировать]

    mat.86
  • 14134
  • Стаж: 8 лет 4 месяца
  • Сообщений: 225
  • Репутация:1

    [+] [-]
Я сделал так
reg load hklm\tmp-system d:\1\system
for /f "usebackq tokens=8 delims=\" %%A in (`reg query "HKLM\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces" /se #`) do call :PROCESS "%%A"
goto :EOF
:PROCESS
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces\%~1" /v "IPAddress"`) Do Echo %%J>>text.txt
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces\%~1" /v "SubnetMask"`) Do Echo %%J>>text.txt
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces\%~1" /v "DefaultGateway"`) Do Echo %%J>>text.txt
echo ->>text.txt
echo ----------------------------------------------->>text.txt
echo ->>text.txt
echo ->>text.txt
goto :EOF
TIMEOUT /T 10 /NOBREAK
reg unload hklm\tmp-system
Но команда
TIMEOUT /T 10 /NOBREAK
reg unload hklm\tmp-system
почему то уже не срабатывает

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
mat.86,
68995Да так лучше, почти чистый получается, но выводит такие строки: Режим вывода команд на экран (ECHO) включен.
Чтобы не выводился, после echo нужен не пробел, а например ;
И лучше перенаправление делать в начале, иначе последний символ %%J, если он является цифрой может быть некорректно воспринят как номер канала, хотя к данному примеру это не относится.
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces\%~1" /v "IPAddress"`) Do >>text.txt Echo;%%J

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
mat.86,
68998почему то уже не срабатывает
Так надо щупать ветку реестра tmp-system
for /f "usebackq tokens=8 delims=\" %%A in (`reg query "HKLM\tmp-system\ControlSet001\services\Tcpip\Parameters\Interfaces" /se #`) do call :PROCESS "%%A"

[Цитировать]

    mat.86
  • 14134
  • Стаж: 8 лет 4 месяца
  • Сообщений: 225
  • Репутация:1

    [+] [-]
69000mat.86,
68998почему то уже не срабатывает
Так надо щупать ветку реестра tmp-system
for /f "usebackq tokens=8 delims=\" %%A in (`reg query "HKLM\tmp-system\ControlSet001\services\Tcpip\Parameters\Interfaces" /se #`) do call :PROCESS "%%A"
Получилось так:
reg load hklm\tmp-system d:\1\system
for /f "usebackq tokens=8 delims=\" %%A in (`reg query "HKLM\tmp-system\ControlSet001\services\Tcpip\Parameters\Interfaces" /se #`) do call :PROCESS "%%A"
TIMEOUT /T 5 /NOBREAK
reg unload hklm\tmp-system
goto :EOF
:PROCESS
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\tmp-system\ControlSet001\services\Tcpip\Parameters\Interfaces\%~1" /v "IPAddress"`) Do >>text.txt Echo;%%J
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\tmp-system\ControlSet001\services\Tcpip\Parameters\Interfaces\%~1" /v "SubnetMask"`) Do >>text.txt Echo;%%J
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\tmp-system\ControlSet001\services\Tcpip\Parameters\Interfaces\%~1" /v "DefaultGateway"`) Do >>text.txt Echo;%%J
echo ->>text.txt
echo ----------------------------------------------->>text.txt
echo ->>text.txt
echo ->>text.txt
goto :EOF
Так отключение работает
Как можно сделать чтобы text.txt спрашивало куда сохранить?

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет 9 месяцев
  • Сообщений: 3114
  • Репутация:127

    [+] [-]
69009Как можно сделать чтобы text.txt спрашивало куда сохранить?
set /p "FileName=Путь к лог файлу : "
echo;%FileName%

[Цитировать]

    mat.86
  • 14134
  • Стаж: 8 лет 4 месяца
  • Сообщений: 225
  • Репутация:1

    [+] [-]
попробовал так, ничего не происходит
reg load hklm\tmp-system d:\1\system
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\tmp-system\ControlSet001\Control\ComputerName\ComputerName"^|Find /I "ComputerName"`) Do >>text.txt Echo;%%J
for /f "usebackq tokens=8 delims=\" %%A in (`reg query "HKLM\tmp-system\ControlSet001\services\Tcpip\Parameters\Interfaces" /se #`) do call :PROCESS "%%A"
TIMEOUT /T 5 /NOBREAK
reg unload hklm\tmp-system
set /p "FileName=d:\1\text.txt"
echo;%FileName%
goto :EOF
:PROCESS
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\tmp-system\ControlSet001\services\Tcpip\Parameters\Interfaces\%~1" /v "IPAddress"`) Do >>text.txt Echo;%%J
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\tmp-system\ControlSet001\services\Tcpip\Parameters\Interfaces\%~1" /v "SubnetMask"`) Do >>text.txt Echo;%%J
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\tmp-system\ControlSet001\services\Tcpip\Parameters\Interfaces\%~1" /v "DefaultGateway"`) Do >>text.txt Echo;%%J
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_LOCAL_MACHINE\tmp-system\ControlSet001\services\Tcpip\Parameters\Interfaces\%~1" /v "NameServer"`) Do >>text.txt Echo;%%J
echo I>>text.txt
echo ----------------------------------------------->>text.txt
echo I>>text.txt
goto :EOF

[Цитировать]

    mat.86
  • 14134
  • Стаж: 8 лет 4 месяца
  • Сообщений: 225
  • Репутация:1

    [+] [-]
У conty9, в Полезных утилитах, есть утилита wfile для открытия и сохранения файлов. Но как ей пользоваться не могу разобраться. Инструкция вообще не понятна. Есть пример, рядом с утилитой, но и как он устроен сложно разобраться. Как добавляется путь от выбранного файла в cmd, я думал он копируется в буфер обмена, так нет. Помогите разобраться пожалуйста

[Цитировать]

    mat.86
  • 14134
  • Стаж: 8 лет 4 месяца
  • Сообщений: 225
  • Репутация:1

    [+] [-]
Вот открытие файла system написал так, вроде сработало
@prompt $
@echo on
FileToOpen "set fname=" "%userprofile%\Downloads\*" "Select source file" /multiselect> %temp%\temp.cmd
@echo off
echo.
echo Errorlevel: %errorlevel%
if errorlevel 1 goto :end
call %temp%\temp.cmd
echo.
echo Fname=%fname%
echo.
:end
pause
reg load hklm\tmp-system %fname%
А вот с сохранением не могу разобраться

[Цитировать]

    mat.86
  • 14134
  • Стаж: 8 лет 4 месяца
  • Сообщений: 225
  • Репутация:1

    [+] [-]
FileToSave не работает, Blah.txt почему то не создается
@prompt $
@echo on
FileToSave "set fname=" ".\*.txt" "Select target file" "Blah.txt" /overwritePrompt > %temp%\temp.cmd
@echo off
echo.
echo Errorlevel: %errorlevel%
if errorlevel 1 goto :end

[Цитировать]

    Ander_73
  • 15549
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 3817
  • Репутация:127

    [+] [-]
mat.86, в Вашем примере переменная fname (после выполнения батника temp.cmd) будет содержать имя файла (по-умолчанию это Blah.txt). Сама утилита FileToSave.exe ничего не создаёт.
Учитесь нормально и вдумчиво "читать" примеры.

[Цитировать]

    mat.86
  • 14134
  • Стаж: 8 лет 4 месяца
  • Сообщений: 225
  • Репутация:1

    [+] [-]
Мне нужно взять готовый текстовый файл на диске D и пересохранить его в нужное место через диалоговое окно, можете привести пример

Комментарий от Ander_73


Могу, но делать этого не буду по принципиальным соображениям. Перед Вами стоит задача разобраться в работе двух несложных утилит и Вы должны решить эту задачу сами!

[Цитировать]

    mat.86
  • 14134
  • Стаж: 8 лет 4 месяца
  • Сообщений: 225
  • Репутация:1

    [+] [-]
Ander_73, спасибо за помощь ay

Страница 2 из 5


Показать сообщения:    

Текущее время: 24-Ноя 03:15

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы