Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd) 2

Модерирует : gyra, Maz

Widok (10-03-2009 12:39): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Командная строка, батники\сценарии (bat, cmd)
(часть 1)
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Задачи на bat-файлах 5
 
Полезные ссылки:
· Cmd. Описание от разработчиков
· Урок bat-аники (для начинающих)
· Курс лекций для начинающих. Полезно и просто описано
· Набор GNU утилит для win32
· Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· cmdow — изменение параметров и видимости дос-окна
· blat — отправка почты из консоли
· Справка по командам в виде Html
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Пример - получение и обработка списка пользователей
· Уильям Станек - Командная строка Microsoft Windows (вплоть до w2k3)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек)
 
Старая версия первого сообщения

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 12:08 19-11-2007 | Исправлено: Dmitriy05, 22:49 13-04-2008
renreg



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Извините за чайниковский вопрос, но батники я пишу раз в 100 лет, а тут понадобилось
 
Имeем *.bat  
 
 

Код:
@ECHO OFF Lingvo12  
cd ..
cd ..
cd Bat
cd P
cd MOY KATALOG
MOYA PROGRAMMA.exe
EXIT
 
 
 
Пере запуском программы открывается досовское окошко, закрывать которое приходится вручную.  
 
Как  избежать появления досовского окошка? Или, в худшем случаем, автоматичеки закрывать его?  
 
Спасибо


----------
Заграница нам поможет
_____________________
renreg

Всего записей: 5117 | Зарегистр. 24-09-2001 | Отправлено: 11:34 28-07-2008
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
renreg

Код:
 
start "" "MOYA PROGRAMMA.exe"
 


----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 12:07 28-07-2008
Svjt



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
renreg
Либо вариант Elroir, либо, если тебе нада точно отследить конец работы "MOYA PROGRAMMA.exe" (допустим после неё должно что-то ещё делать то вот так (по крайней мере сам так делаю):
 
 

Код:
 
elay
pause 1000
tasklist > Task.log  
find "MOYA PROGRAMMA.exe" Task.log  
if %errorlevel%==0 goto delay
 

Всего записей: 17 | Зарегистр. 03-03-2008 | Отправлено: 12:25 28-07-2008
AnryEkb

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые Гуру, подскажите пожалуйста.  
 
Есть задача, незаметно запустить с загрузкой винды скайп, чтоб не светился ни своим окном, ни треем. Просто тихо сидел в процессах и не раздражал собой пользователя.
Есть куча прог которые прячут окно и значек трея по нажатии комбинации клавиш, но не в момент загрузки!!!  
Уважаемые подскажите можно ли решить данную проблему одним батником, если нет, может быть есть возможность сделать такой bat файл чтобы загружал скайп и по истечении какого то времени эмулировал нажатие комбинации клавиш, чтоб уже другая прога их подхватила и прятала его.
 
Заранее благодарю.

Всего записей: 8 | Зарегистр. 06-05-2008 | Отправлено: 12:40 28-07-2008
vmix



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vmix

Цитата:
Задача:  
Логировать вкл/откл компов в сети  

..пришлось делать самому, вот что получилось:
 

Код:
 
:: Ping hosts by list and write changelog.. @vmix
    @echo off
    setlocal EnableDelayedExpansion
    set SLEEP=60
    set PH1=0
    set PH2=0
    if not exist hosts.txt goto:SYNTAX
    echo PingLogging.. (press Ctrl-C for exit)
    echo Hosts start state.. >pinglog.log
 
    for /f "tokens=1" %%A in (hosts.txt) do (
    set HOST=%%A
    ping !HOST! | find /i "TTL">nul
    if errorlevel 1 (call:HP0) else (call:HP1)
    )
    echo Changelog.. >>pinglog.log
 
    :PH
    ping -n %SLEEP% 127.0.0.1 >nul
    for /f "tokens=*" %%A in (hosts.txt) do (
    set HOST=%%A
    for /f "tokens=*" %%B in (pinglog.log) do for /f "tokens=*" %%C in ('echo %%B ^| find /i "%%A"') do set CH=%%C
    echo !CH! | find /i "down">nul
    if not errorlevel 1 (set PH1=0) else (set PH1=1)
    echo !CH! | find /i "up">nul
    if not errorlevel 1 (set PH1=1) else (set PH1=0)
    ping !HOST! | find /i "TTL">nul
    if errorlevel 1 (set PH2=0) else (set PH2=1)
    set /a PH=!PH2!-!PH1!
    if !PH! GTR 0 call:HP1
    if !PH! LSS 0 call:HP0
    )
    goto:PH
 
    :HP0
    echo %DATE:~-10% %TIME:~,8%    down    %HOST% >>pinglog.log
    goto:EOF
 
    :HP1
    echo %DATE:~-10% %TIME:~,8%    up    %HOST% >>pinglog.log
    goto:EOF
 
    :SYNTAX
    echo 1.1.1.1 >hosts.txt
    echo.
    echo  Please edit file named "hosts.txt" with IP addresses of your computers..
    echo.
    pause
 

Всего записей: 162 | Зарегистр. 22-10-2002 | Отправлено: 19:18 29-07-2008
RMR

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А можно ли запустить из батника программу так, чтобы path был как у программы, а не откуда запускается батник.

Всего записей: 32 | Зарегистр. 23-11-2006 | Отправлено: 10:24 31-07-2008
Daul



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Перед запуском программы перейти в нужную папку: cd "путь к программе"

Всего записей: 3 | Зарегистр. 10-01-2007 | Отправлено: 13:38 31-07-2008
RMR

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Daul Спасибо!
А можно ли обработать ошибку "метка не найдена" при goto несуществующая_метка?

Всего записей: 32 | Зарегистр. 23-11-2006 | Отправлено: 14:44 31-07-2008
bornbill



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
народ нужно создать каталог с текущим временем(часы минуты секунды) формат не принципиален.... заранее благодарен.

Всего записей: 1440 | Зарегистр. 02-04-2004 | Отправлено: 15:19 31-07-2008
RMR

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уже не надо вообщем.
Сделал switch. Напишите если знаете лучший способ.

Код:
@echo off
title Switch
:start
set num=
echo 1: Посмотреть имя компьютера
echo 2: Посмотреть количество процессоров
echo 3: Посмотреть OS
echo 4: Посмотреть IP
echo 5: Выход
set /p "num=Введите номер: "
call :switch %num%
echo.
call :return
:1
echo Имя компьютера: %COMPUTERNAME%  
pause
call :return
:2
echo Количество процессоров: %NUMBER_OF_PROCESSORS%
pause
call :return
:3
echo OS: %OS%
pause
call :return
:4
for /F "tokens=2 delims=:" %%A in ('ipconfig ^| find "IP"') do (for %%B in (%%A) do set IP=%%B)
echo Ваш IP: %IP%
pause
call :return
:5
exit
 
:switch
goto %~1
 
:return
cls
goto start

 

Всего записей: 32 | Зарегистр. 23-11-2006 | Отправлено: 15:21 31-07-2008
bornbill



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
или по русски как убрать : все из переменной заранее благодарен

Всего записей: 1440 | Зарегистр. 02-04-2004 | Отправлено: 15:22 31-07-2008
RMR

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bornbill echo %time::=-%

Всего записей: 32 | Зарегистр. 23-11-2006 | Отправлено: 15:43 31-07-2008
bornbill



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RMR
а запятые в том же выражении?

Всего записей: 1440 | Зарегистр. 02-04-2004 | Отправлено: 15:56 31-07-2008
citav



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
All
 
Свалилось такое несчастье,как установка на сотню компов новой надстройки над оффисом,но проблема в том,что требуется вначале установить несколько компонентов,но так как пользователи у нас с ограничеными правами приходится каждый файлик запускать от имени локального админа,что не очень удобно.
 
Подскажите как в батнике сделать,чтоб запустить от имени локального админа первый файл,дождаться его выполнения и далее запустить второй файл с правами админа,дождаться его выполнения и далее третий....
 
Спасибо за помощь,а то искать не дают-ставь ручками,говорят,а учится потом будешь....

Всего записей: 476 | Зарегистр. 30-07-2002 | Отправлено: 15:58 31-07-2008
RMR

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bornbill
 
1ый вариант (часы минуты секунды)
set tm=%time:~0,8%
set tm=%tm::=.%
echo %tm%
 
2ой вариант (часы минуты секунды)
for /F "tokens=1,2,3 delims=:, " %%i in ("%time%") do (set hour=%%i) & (set min=%%j) & (set sec=%%k)
echo %hour%-%min%.%sec%
 
Добавлено:
А можно ли записать батником в файл echo "%~1" чтобы "%~1" не превратился в %1 батника.

Всего записей: 32 | Зарегистр. 23-11-2006 | Отправлено: 16:12 31-07-2008 | Исправлено: RMR, 16:54 31-07-2008
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RMR

Цитата:
А можно ли записать батником в файл echo "%~1" чтобы "%~1" не превратился в %1 батника

Удвой знак процента.

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:02 31-07-2008
RMR

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir Спасибо.
А как правильно сделать set var=%var:*=%

Всего записей: 32 | Зарегистр. 23-11-2006 | Отправлено: 21:11 31-07-2008
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RMR

Цитата:
А как правильно сделать set var=%var:*=%  

Смотря что ты хочешь сделать. Сформулируй вопрос по другому.

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 21:44 31-07-2008
RMR

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Убрать все * из переменной.

Всего записей: 32 | Зарегистр. 23-11-2006 | Отправлено: 22:07 31-07-2008
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RMR

Код:
 
@echo off
setlocal
set "a=asd**asdfa *cdf*"
echo a = %a%
set "temp_a=%a%"
set "a="
call :replace_star "%temp_a%"
echo a = %a%
goto :EOF
:replace_star
if "%~1"=="" goto :EOF
set "temp_a=%~1"
if not "%temp_a:~0,1%"=="*" (set "a=%a%%temp_a:~0,1%")
call :replace_star "%temp_a:~1%"
 


----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 22:35 31-07-2008
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd) 2
Widok (10-03-2009 12:39): Лимит страниц. Продолжаем здесь.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru