[Quote]

    nikzzzz
  • 215
  • Longevity: 5 years
  • Posts: 2984
  • REPUTATION:127

    [+] [-]
mat.86,
68985Например команда поиска "IPAddress" выводит и DhcpIPAddress. Можно ли это исключить?
Добавьте пробел
Findstr /l " IPAddress"

[Quote]

    mat.86
  • 14134
  • Longevity: 3 years 6 months
  • Posts: 144
  • REPUTATION:1

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

[Quote]

    nikzzzz
  • 215
  • Longevity: 5 years
  • Posts: 2984
  • REPUTATION: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

[Quote]

    mat.86
  • 14134
  • Longevity: 3 years 6 months
  • Posts: 144
  • REPUTATION:1

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

[Quote]

    mat.86
  • 14134
  • Longevity: 3 years 6 months
  • Posts: 144
  • REPUTATION: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
почему то уже не срабатывает

[Quote]

    nikzzzz
  • 215
  • Longevity: 5 years
  • Posts: 2984
  • REPUTATION: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

[Quote]

    nikzzzz
  • 215
  • Longevity: 5 years
  • Posts: 2984
  • REPUTATION: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"

[Quote]

    mat.86
  • 14134
  • Longevity: 3 years 6 months
  • Posts: 144
  • REPUTATION: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 спрашивало куда сохранить?

[Quote]

    nikzzzz
  • 215
  • Longevity: 5 years
  • Posts: 2984
  • REPUTATION:127

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

[Quote]

    mat.86
  • 14134
  • Longevity: 3 years 6 months
  • Posts: 144
  • REPUTATION: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

[Quote]

    mat.86
  • 14134
  • Longevity: 3 years 6 months
  • Posts: 144
  • REPUTATION:1

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

[Quote]

    mat.86
  • 14134
  • Longevity: 3 years 6 months
  • Posts: 144
  • REPUTATION: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%
А вот с сохранением не могу разобраться

[Quote]

    mat.86
  • 14134
  • Longevity: 3 years 6 months
  • Posts: 144
  • REPUTATION: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

[Quote]

    Ander_73
  • 15549
  • Longevity: 2 years 11 months
  • Posts: 1416
  • REPUTATION:89

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

[Quote]

    mat.86
  • 14134
  • Longevity: 3 years 6 months
  • Posts: 144
  • REPUTATION:1

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

Comment from Ander_73


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

Page 2 of 5


Display posts:    

Current time is: 26-Jan 22:07

All times are UTC + 3


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum