Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах

Автор: jak_forest
Дата сообщения: 26.04.2006 11:13
Serge2005
по поводу первого: либо запускать батник с перенаправлением всего вывода в файл, либо в каждой строке перенаправлять в файл, либо поройся, мне где-то в этом топике уже предлагли одно оригинальное решение.
по поводу второго
либо команда cd без параметров, либо переменная %cd% подскажут в акой папке ты находишься. А может тебе проще делать tart /wait <путь к папке>\dir1\01.exe?

Добавлено:
antsh85
set /?
например
%PATH:str1=str2%
заменит в PATH набор символов "str1" на "str2"
Автор: Serge2005
Дата сообщения: 26.04.2006 11:18
jak_forest

Цитата:
либо запускать батник с перенаправлением всего вывода в файл

Это как???
Я запускаю "дистанционно" 01.cmd, один раз указав к нему путь. Больше этот путь я указать не могу (тут свои траблы, связанные с полной задачей...долго рассказывать). А потом мне надо перейти в директорию, где этот файл (01.cmd) находится...Я немного не понял предложение...
Цитата:
проще делать tart /wait <путь к папке>\dir1\01.exe
- не прокатит...это всего-лишь пример
Автор: antsh85
Дата сообщения: 26.04.2006 12:08
jak_forest
Прочёл хелп и всё равно не понял.

Вообщем мне надо открыть файл
найти слово в котором где либо присутствует "sf"
далее это найденное слово внести в переменную
set x=....

всё
Автор: jak_forest
Дата сообщения: 27.04.2006 08:17
antsh85

Код: for /f "tokens=*" %%i in ('findstr /i "host" scriptCISCO.txt') do echo %%i
Автор: SERG691018
Дата сообщения: 27.04.2006 08:54
не подскажите как в 5 досе создать папку типа dd-mm-yy
Автор: Smitis
Дата сообщения: 27.04.2006 10:37
Serge2005

Цитата:
Есть папка dir1 где-то на компе (путь известен). В ней лежат 01.cmd, 01.exe и еще что-нить. в 01.cmd прописано start /wait 01.exe. Если запускать смд из этой папки, то все ок. А если из другого места, то фигня получается. Рабочий каталог не тот. Как рабочим каталогом сделать папку dir1? Без cd /d путь к папке. В общем как програмно узнать местоположение запущенного смд файла?


Полное имя батника: "%~f0"
Полный путь к батнику: "%~dp0" (с завершающим символом "\")
Если в пути/имени есть пробелы, кавычки обязательны.

Добавлено:
jak_forest

Цитата:

Код: for /f "tokens=*" %%i in ('findstr /i "host" scriptCISCO.txt') do echo %%i

такой батник найдет и выведет на экран строку содержащую слово "host" (без кавычек естественно) в файле scriptCISCO.txt
а как вырезать из строки нужное слово, я даже не знаю может кто другой подскажет
Автор: SERG691018
Дата сообщения: 27.04.2006 11:23
Smitis

а в 9х? что за 4дос?
Автор: Serge2005
Дата сообщения: 27.04.2006 11:27
Smitis

Цитата:
Полное имя батника: "%~f0"
Полный путь к батнику: "%~dp0" (с завершающим символом "\")
Если в пути/имени есть пробелы, кавычки обязательны

Спасибо огромное!!!
Автор: SERG691018
Дата сообщения: 27.04.2006 11:56
Smitis

если нет возможности в досе или 9х создавать папки типа dd-mm-yy , то можно ли создавать папки типа %имя папки% +число по возрастающей.
Автор: anzor
Дата сообщения: 27.04.2006 12:13
Нужен батник на 2003:
1.запуск интернет соединения
2.запуск ехе файла
3.кликание на кнопку
4.выключение компа

Заранее спасибо!
Автор: KapralBel
Дата сообщения: 27.04.2006 12:49
anzor

Код:
@Echo Off
Rem #1
Rem - Internet - имя соединения с интернетом
RASDial Internet

Rem #2
C:\Utils\Program.exe

Rem #3
Rem Какую кнопку?

Rem #4
Shutdown -s
Автор: Smitis
Дата сообщения: 27.04.2006 12:50
anzor

Цитата:
Нужен батник на 2003:
1.запуск интернет соединения
2.запуск ехе файла
3.кликание на кнопку
4.выключение компа

Зачем в разных топиках посты дублируешь? По два раза нам тебе отвечать что-ли?

Добавлено:
SERG691018

Цитата:
а в 9х? что за 4дос?

Альтернативный командный процессор. Когда-то с успехом заменял у меня command.com в Win98 (есть, правда, некоторые нюансы).
http://jpsoft.com/download.html


Цитата:
если нет возможности в досе или 9х создавать папки типа dd-mm-yy , то можно ли создавать папки типа %имя папки% +число по возрастающей.

В принципе, можно написать двойной цикл типа
for %%i in (0 1 2 3 4 5 6 7 8 9) do for %%j in (0 1 2 3 4 5 6 7 8 9) do ...
в котором проверять наличие папки с номером и если её нет, создавать. Но не на чем проверить...
Автор: Serge2005
Дата сообщения: 27.04.2006 13:11
Как в файл вывести такую строку (без {}):
{@="%SystemDrive%\\Program Files\\IDA\\ida.exe \"%L\""}
Пробовал так:
echo @="%SystemDrive%\\Program Files\\IDA\\ida.exe \"%L\"">>01.reg
-не получается, т.к. %L выводится как L.
Автор: Smitis
Дата сообщения: 27.04.2006 13:32
Serge2005
Удваивай каждый %
echo @="%%SystemDrive%%\\Program Files\\IDA\\ida.exe \"%%L\"">>01.reg
Автор: Serge2005
Дата сообщения: 27.04.2006 13:37
Smitis
Спасибо!!! Класс!
Автор: ipmanyak
Дата сообщения: 27.04.2006 13:43
если ты делаешь эту команду в bat файле, то перед %L укажи еще один процент !
echo @="%SystemDrive%\\Program Files\\IDA\\ida.exe \"%%L\"">>01.reg
результат
@="C:\\Program Files\\IDA\\ida.exe \"%L\""
обрати внимание, что у тебя лишние слэши и пробел после ida.exe
Автор: Smitis
Дата сообщения: 27.04.2006 13:59
Serge2005
ipmanyak
Да, для %SystemDrive% символы в данном случае не надо удваивать (хотя хрен знает, может выполнится).
Но "лишних" пробелов и слешей я не вижу. Наоборот, не хватает. Надо так:
echo @="\"%SystemDrive%\\Program Files\\IDA\\ida.exe\" \"%%L\"">>01.reg
Или использовать для таких случаев команды ASSOC и FTYPE
Автор: anzor
Дата сообщения: 27.04.2006 14:47

Цитата:

Код:
@Echo Off
Rem #1
Rem - Internet - имя соединения с интернетом (покажи напримере а то ошибку выдает 623 хоты без батника заходит!)
RASDial Internet (че за параметр?)

Rem #2
C:\Utils\Program.exe

Rem #3
Rem Какую кнопку?

Rem #4
Shutdown -s



и еще есть мне бы пароль доступа в инет прописать!
Автор: KapralBel
Дата сообщения: 27.04.2006 15:01
anzor
RASDial /?
Как у тебя названо интернет соединение?
Пароль вводится интерективно?
Автор: anzor
Дата сообщения: 27.04.2006 15:14
Delta
пароль хотелось бы ввести в батнике

у меня впн соединение!


вписал в батник следуюшее
Rem - Delta
RASDial delta [логин пароль]

пишет установка имени и пароля соединения и не соединяется пишет ошибка 691(домтуп запрещен поскольку такие име и пароль недопустимы в этом домене)хотя без батника соединение работает в чем причина?
Автор: anzor
Дата сообщения: 28.04.2006 09:13
с соединением разобрался!
теперь нужно чтобы он через определенное время закрывал приложение и соединение!
Автор: KapralBel
Дата сообщения: 28.04.2006 09:35
anzor
Взглянь в сторону nnCron или обычный планировцик
RASDial /DisConnect
Автор: anzor
Дата сообщения: 28.04.2006 09:46
они некоректно работают в 2003!!!!

/disconnect закрывает сразу а мне надо через определенное время!

и как кликнуть на кнопку на приложении которое открылось ранее?
Автор: KapralBel
Дата сообщения: 28.04.2006 10:06
anzor
В смысле через определенное время?
Так запускай когда нужно

С кликанием на кнопку - это не знаю
А какая программа - может есть программы консольного типа - и можно заменить
Автор: anzor
Дата сообщения: 28.04.2006 12:51
а кто сможет?
Автор: Devil66
Дата сообщения: 29.04.2006 22:10
Нужен батник.
Чтобы при запуске пинговал сервер и если сервер не пингуется выполнял одно действие. Если пингуется- другое.
Подскажите, как это реализовать.
Автор: vu1tur
Дата сообщения: 30.04.2006 10:40
Devil66
Пример выполнения команд по результату команды ping

Добавлено:
anzor

Цитата:
они некоректно работают в 2003!!!!

Что значит некорректно?

Цитата:
/disconnect закрывает сразу а мне надо через определенное время!


Код:
sleep <определенное время в секундах>
... /disconnect
Автор: Smitis
Дата сообщения: 30.04.2006 16:16
Жаль, что этот топик потерял первоначальное направление, а именно - разные интересные задачки по программированию на батниках.
Всё-таки попробую предложить размяться на праздниках и решить такую задачку. Сформулирую её так:
Требуется написать командный файл для XP/2000/2003 принимающий из командной строки один параметр - имя папки. Требуется проверить, существует ли такая папка, и, допустим, вывести сообщение "Folder exist". Естественно, имеются ввиду не какие-нибудь виртуальные папки, а физические. Диск, на котором происходит проверка, доступен и все права есть.

Решение я знаю, задачка для разминки мозгов.
Те кто воскликнул, что всё очень просто и подобные вещи проскакивали даже в этом топике, подумайте ещё раз, может всё не ТАК просто!
Автор: igor_andreev
Дата сообщения: 01.05.2006 11:57
Smitis
Ну вообще обычно конструкция IF EXIST FOLDER\NUL работает, обычно ею пользуюсь. Раз столкнулся, что если в пути есть пробелы, то IF EXIST "FOLDER WITH SPACES\NUL"(в кавычках) не пашет.

Кажется я тогда не придумал ничего лучше, чем попытаться войти в папку CD FOLDER возвращает 0 и 1 при удачной и неудачной попытках. Как то так:

Код:
@ECHO OFF

CD /D D:\TEST
GOTO %ERRORLEVEL%

:1
ECHO FOLDER NOT FOUND
GOTO :END

:0
ECHO FOLDER EXIST
GOTO :END

:END
Автор: Smitis
Дата сообщения: 01.05.2006 22:17
igor_andreev
Хммм... Использовать команду CD - зачОт. Сам возьму на заметку Кстати, pushd работает аналогично. Ключ /d для проверки тоже необязателен.
Но есть ещё решения. Будут варианты?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Вернуть библиотеку АТМ (поддержка шрифтов Type 1)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.