mat.86
- Стаж: 8 лет 4 месяца
- Сообщений: 225
- Репутация:1[+] [-]
|
nikzzzz, да, так получилось. Теперь бы сделать, чтобы выскакивало диалоговое окно для указания папки реестра, ведь он может быть и не на диске С и облагородить вывод информации, было б хорошо чтобы батник выдавал запрос куда сохранить text.txtНе сработало
|
nikzzzz
- Стаж: 9 лет 9 месяцев
- Сообщений: 3114
- Репутация:127[+] [-]
|
mat.86 Вообще-то Findstr использовать неправильно, будет куча мусора, лучще просто читать нужное средствами reg.exefor /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
- Стаж: 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
- Стаж: 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
- Стаж: 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
- Стаж: 9 лет 9 месяцев
- Сообщений: 3114
- Репутация:127[+] [-]
|
mat.86,68998почему то уже не срабатывает Так надо щупать ветку реестра tmp-systemfor /f "usebackq tokens=8 delims=\" %%A in (`reg query "HKLM\tmp-system\ControlSet001\services\Tcpip\Parameters\Interfaces" /se #`) do call :PROCESS "%%A"
|
Отправлено: 27-Июл-2019 00:42
(спустя 2 часа 53 минуты)
mat.86
- Стаж: 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 спрашивало куда сохранить?
|
Отправлено: 27-Июл-2019 02:28
(спустя 1 час 46 минут)
nikzzzz
- Стаж: 9 лет 9 месяцев
- Сообщений: 3114
- Репутация:127[+] [-]
|
69009Как можно сделать чтобы text.txt спрашивало куда сохранить? set /p "FileName=Путь к лог файлу : " echo;%FileName%
|
mat.86
- Стаж: 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
- Стаж: 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
- Стаж: 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
- Стаж: 7 лет 9 месяцев
- Сообщений: 3810
- Репутация:127[+] [-]
|
mat.86, в Вашем примере переменная fname (после выполнения батника temp.cmd) будет содержать имя файла (по-умолчанию это Blah.txt). Сама утилита FileToSave.exe ничего не создаёт. Учитесь нормально и вдумчиво "читать" примеры.
|
mat.86
- Стаж: 8 лет 4 месяца
- Сообщений: 225
- Репутация:1[+] [-]
|
Мне нужно взять готовый текстовый файл на диске D и пересохранить его в нужное место через диалоговое окно, можете привести пример
|
mat.86
- Стаж: 8 лет 4 месяца
- Сообщений: 225
- Репутация:1[+] [-]
|
Ander_73, спасибо за помощь
|
Страница 2 из 5
Текущее время: 21-Ноя 19:06
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы
|
|