Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] все команды в одну строку?

Ответить
Настройки темы
CMD/BAT - [решено] все команды в одну строку?

Пользователь


Сообщения: 90
Благодарности: 2

Профиль | Цитировать


вот скрипт:
echo "example text">file.bat

вместо "example text" нужно поместить следующий текст:
echo off
cls
ipconfig/all
pause

в общем батник должен создать батник с текстом в столбик.


И, если не затруднит как поместить этот текст вместо "example text":
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"^|Find "HideFileExt"`) Do set /a key=%%J

if %key%==0 (
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t REG_DWORD /d 00000001 /f
) else (
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t REG_DWORD /d 00000000 /f
)

Отправлено: 17:10, 24-03-2011

 


Moderator


Сообщения: 53184
Благодарности: 15433

Профиль | Отправить PM | Цитировать


Цитата super_bitard:
если не затруднит как поместить этот текст вместо "example text"
Код: Выделить весь код
Echo For /F "UseBackQ Tokens=2*" %%%%I In (`Reg Query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"^^^|Find "HideFileExt"`) Do set /a key=%%%%J>file.bat
Echo if %%key%%==0 (>>file.bat
Echo reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t REG_DWORD /d 00000001 /f>>file.bat
Echo ) else (>>file.bat
Echo reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t REG_DWORD /d 00000000 /f>>file.bat
Echo )>>file.bat
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:25, 24-03-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 90
Благодарности: 2

Профиль | Цитировать


ok, thanks

Отправлено: 17:55, 24-03-2011 | #3


Ветеран


Сообщения: 2183
Благодарности: 721

Профиль | Отправить PM | Цитировать


Необходимо записать код в одну строку. Почему-то не присваивается переменная. Прошу подсказать, где ошибка.
Код: Выделить весь код
cmd.exe /c "SetLocal enabledelayedexpansion& set "hst=%windir%\system32\drivers\etc"& for /f "usebackq delims=" %%i in ("%hst%\hosts") do if not "%%i"=="127.0.0.1    martau.com" if not "%%i"=="127.0.0.1    total-uninstall.com" echo %%i>>"%hst%\$hosts"& del /q "%hst%\hosts"& ren "%hst%\$hosts" hosts"

Отправлено: 15:45, 10-04-2013 | #4


Пользователь


Сообщения: 148
Благодарности: 39

Профиль | Сайт | Отправить PM | Цитировать


Код: Выделить весь код
cmd /e:ON /v:ON /c "set hst=%windir%\system32\drivers\etc& for /f "usebackq delims=" %%i in ("!hst!\hosts") do if not "%%i"=="127.0.0.1    martau.com" if not "%%i"=="127.0.0.1    total-uninstall.com" echo %%i>>"!hst!\$hosts"& del /q /a "!hst!\hosts"& ren "!hst!\$hosts" hosts"
Там ! вместо % нужно использовать.
Еще чуть сократил код и добавил ключ /a к del.

-------
Alex Dragokas


Отправлено: 21:57, 10-04-2013 | #5


Ветеран


Сообщения: 2183
Благодарности: 721

Профиль | Отправить PM | Цитировать


Код в батнике работает, как секция [File.Delete] inf файла не работает. Как сделать, чтобы и inf работал?
Код: Выделить весь код
cmd /e:ON /v:ON /c "(for /f "usebackq delims=" %%i in ("%windir%\system32\drivers\etc\hosts") do if not "%%i"=="127.0.0.1    martau.com" if not "%%i"=="127.0.0.1    total-uninstall.com" echo %%i>>"%windir%\system32\drivers\etc\$hosts")& (del /q "%windir%\system32\drivers\etc\hosts"& ren "%windir%\system32\drivers\etc\$hosts" hosts)"
*есть предположение, что ошибка в инфе получается из-за знака равно, правая часть от знака равно присваивается левой части. Как это исправить?

Последний раз редактировалось sov44, 10-01-2014 в 09:58.


Отправлено: 23:12, 10-04-2013 | #6


Новый участник


Сообщения: 32
Благодарности: 0

Профиль | Отправить PM | Цитировать


Подскажите, почему при использовании
Код: Выделить весь код
date /t & time /t >> %log%
внутри батника, в лог записывается лишь результат time /t.
При этом, если ввести в командную строку
Код: Выделить весь код
date /t & time /t
то выводится результат обеих команд

bagfinder, потому что нужна группировка
Цитата:
(date /t & time /t) >> %log%
А вот как сделать так, чтобы вывод обеих команд был в одной строке?

Отправлено: 16:54, 17-01-2014 | #7

mwz mwz вне форума

Аватара для mwz

Ушел из жизни


Сообщения: 8595
Благодарности: 2127

Профиль | Сайт | Отправить PM | Цитировать


Цитата bagfinder:
почему при использовании »
Потому что запись "date /t & time /t >> %log%" эквивалентна двум строкам:

date /t
time /t >> %log%

-------
Mikhail Zhilin


Отправлено: 17:01, 17-01-2014 | #8


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата bagfinder:
А вот как сделать так, чтобы вывод обеих команд был в одной строке? »
Напрямую — никак. Поскольку перевод строки добавляется при выводе и никак не зависит от того, каким образом Вы расположите команды.

Один из возможных типовых обходных путей:
читать дальше »
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq delims=" %%i in (`date /t`) do set sDate=%%~i
for /f "usebackq delims=" %%i in (`time /t`) do set sTime=%%~i

if defined sDate if defined sTime >>"log.txt" echo %sDate%%sTime%

endlocal
exit /b 0

Отправлено: 17:47, 17-01-2014 | #9

mwz mwz вне форума

Аватара для mwz

Ушел из жизни


Сообщения: 8595
Благодарности: 2127

Профиль | Сайт | Отправить PM | Цитировать


Iska, может быть ещё такой вариант?

start /wait writedate & time /t >> %log%

с дополнительным батником writedate.bat (или writedate.cmd). Хотя всё равно неизящно...

-------
Mikhail Zhilin


Отправлено: 20:15, 17-01-2014 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] все команды в одну строку?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - Нужно быстро (!) добавить/удалить строку во все файлы указанной директории Possessed Скриптовые языки администрирования Windows 6 04-10-2011 22:29
CMD/BAT - [решено] как сделать запись в файл в одну строку? mitiya Скриптовые языки администрирования Windows 7 29-04-2010 09:00
[решено] html|Тег <pre> выводит в одну строку morgan1991 Вебмастеру 2 09-03-2010 13:38
[решено] Удалить все символы Enter (переход на след строку) из текста sashadeg AutoIt 9 07-02-2010 05:29
Прочие - Как собрать все документы по ссылкам в одну папку? NuclearBox Программное обеспечение Windows 2 30-09-2009 12:02




 
Переход