- Задержка времени (пауза, тайм-аут) в бат-файле
- Зачем нужна задержка (пауза, тайм-аут) при выполнении команды в bat-файле?
- Проблема с использованием команды PAUSE
- Решение
- Решение
- Функция паузы в командной строке не работает
- 3 ответов
- ждать
- Pause
- Batch file command PAUSE does not work
- 8 Answers 8
- Bat файл pause не работает
Задержка времени (пауза, тайм-аут) в бат-файле
Вот, нашёл в Сети рабочий пример для устройства задержки времени
(пауза, тайм-аут) при выполнении команды в bat-файле:
echo wscript.Sleep 30000>»%temp%\sleep30.vbs»
cscript //nologo «%temp%\sleep30.vbs»
del «%temp%\sleep30.vbs»
Работает в любой ОС Windows, аж бегом
Зачем нужна задержка (пауза, тайм-аут) при выполнении команды в bat-файле?
У всех – по-разному.
Лично мне она (пауза) понадобилась вот для чего:
– Взял простенький bat-файл для очистки временных папок и бросил его в АВТОЗАГРУЗКУ
Прикололся, типа – чтобы этот батничек чистил временные каталоги при запуске системы.
Текст батника вытащил из стандартного Total Commander-a:
cmd /c title Очистка временной папки &cd/d %temp%&rd/s/q %temp% 2>nul &cd/d %tmp%&rd/s/q %tmp% 2>nul &cd/d C:\Windows\Prefetch &del *.pf 2>nul &cd/d C:\Windows\Temp&rd/s/q c:\windows\temp 2>nul
Всё-бы ничего, да только такая процедура очистки временных папок при загрузке –
сносит полезные файлы и система выдаёт окно ошибки
Досадно.
Однако, устройство паузы в 30 сек. решило всю проблему.
И система грузится, и папки темпов — чистятся.
Полный текст bat-файла стал теперь таким:
echo wscript.Sleep 30000>»%temp%\sleep30.vbs»
cscript //nologo «%temp%\sleep30.vbs»
del «%temp%\sleep30.vbs»
cmd /c title Очистка временной папки &cd/d %temp%&rd/s/q %temp% 2>nul &cd/d %tmp%&rd/s/q %tmp% 2>nul &cd/d C:\Windows\Prefetch &del *.pf 2>nul &cd/d C:\Windows\Temp&rd/s/q c:\windows\temp 2>nul
Прим. Лошади понятно, что изменив цифру 30 на своё значение,
можно получить другие величины паузы в секундах в bat-файле.
Начиная с VISTA, в операционных системах семейства Windows присутствует команда TIMEOUT. Эта команда принимает значение таймаута, равного фиксированному периоду времени ожидания (в секундах) до выполнения команды или ожидание до нажатия клавиши. Имеется также параметр, зaдающий игнорирование нажатий клавиш.
Синтаксис
TIMEOUT [/T] 50 [/NOBREAK]
Параметры
/T 50 Таймаут = 50 сек. Время ожидания в секундах. Допустимый интервал: от -1 до 99999 секунд. Значение, равное -1 задает неограниченное время ожидания до нажатия клавиши. /NOBREAK Игнорировать нажатия клавиш, ждать указанное время. /? Отображение справки в командной строке.
TIMEOUT /?
TIMEOUT /T 10
TIMEOUT /T 300 /NOBREAK
TIMEOUT /T -1
Весь текст примера можно внести в bat-файл,
запустить и посмотреть, как это работает.
Впечатляет.
Источник
Проблема с использованием команды PAUSE
И у меня возникла проблема. Иногда мне надо запустить скрипт просто два раза кликнув мышкой на него и тогда мне нужно функция «пауза». А иногда я должен запускать скрипт через cmd (т.е. с начала надо запустить командную строку, и уже от туда запустить скрипт) и вот тут мне мешает функция «пауза».
Подскажите, как мне отследить способ запуска?
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Повторное использование команды PAUSE
Возникла такая проблема: в скрипте есть необходимость использовать команду pause несколько раз.
С помощью команды PAUSE реализовать следующие действия.
Создать командный файл, с помощью команды PAUSE реализовать следующие действия: вывести на экран.
Создать командный файл, с команды PAUSE реализовать следующие действия
Создать командный файл, с помощью команды PAUSE реализовать следующие действия: вывести на экран.
Решение
0 будет содержать полный путь к батнику, а при запуске из cmd только то, что ввели в командной строке. Если батник из командной строки запускается простым вводом имени, без пути и расширения, по этому признаку и можно определить.
Добрый день!
Подскажите, пожалуйста, следующий момент:
Допустим я создал batch-скрипт (назовем его 1.bat)
И допустим я создал еще один batch-скрипт (назовем его 2.bat)
Если я запускаю скрипт 2.bat через двойной клик мыши, то система обрабатывает только первую строку кода и закрывает окно.
Если я запускаю скрипт 2.bat через cmd, то система обрабатывает только первую строку кода и выходит в cmd.
Поскажите, как сделать чтобы обе строчки кода работали в 2.bat?
Решение
Вторая строка не будет срабатывать, если не изменить первую строку, заменив в ней способ вызова пакетного файла:
А учитывая, что и после второй строки могут быть какие-то команды, то способ вызова пакетного файла надо заменить в обеих строках:
Отследить можно и без «WMIC», анализируя значение динамической переменной «CMDCMDLINE»:
Всем, доброго дня. Застрял на простом моменте, помогите плиз. Необходимо удаленно мониторить.
Некорректное деление с использованием команды idiv
Добрый день. Столкнулся с проблемой: после выполнения команды idiv (код программы ниже) происходит.
Помогите решить. Задайте расстояния до городов A, B, C, D. Пусть на 100 км нужно 7 л бензина.
Выделить время работы из команды last с использованием AWK
Всем добрый вечер. Возникла проблема со следующей задачей: «Используя команду last, посчитать.
Источник
Функция паузы в командной строке не работает
Я испытываю проблему с командой пакетного файла-когда я запускаю программу, у меня есть команда «пауза» в конце пакетного файла, однако окно команд по-прежнему автоматически закрывается мгновенно, слишком быстро для меня, чтобы увидеть результаты. Есть ли другой способ предотвратить закрытие окна команд или каким-то образом получить результаты? Я. e, можно напечатанную версию послать, введенный где-то?
Background — я знаю о командных строках, поэтому, пожалуйста, если можете, любой ответ пожалуйста тупой вниз к объяснениям начинающего уровня. Я в конечном счете пытаюсь определить версии файла MS Project и точно использовал / следовал инструкциям этого веб — сайта, однако результаты не будут отображаться для меня-окно команд просто исчезает мгновенно:
текст/команды в пакете файл:
3 ответов
Я подозреваю, что файл содержит ошибку. Попробуйте вызвать пакетный файл из существующего командного окна, чтобы увидеть сообщение.
скорее всего проблема в том, что скрипт вызывает внешнюю программу под названием «strings» и в соответствии с документом, который вы связали с этим можно найти здесь. Для того, чтобы пакетный файл смог его найти, его необходимо установить в каталог, в котором он запущен, иначе потребуется изменить системную переменную среды PATH или поместите его в системный каталог.
ждать
подождите 10 сек:
подождите 10 сек:
ждать 1/4 сек или 250 мсек:
Pause
команда паузы, batch / cmd:
Если бывшей команды пакетного файла, остальные файла не выполняется. попробуйте позвонить перед предыдущими командами/
Источник
Batch file command PAUSE does not work
I am creating a simple batch file to assist in a few things, and I have some instructions that it prints out as well that I want the user to see before exit. Currently, the window closes very quickly. So I added PAUSE at the end of the file, but it does not want to work.
I looked at other questions on SO and have checked to make sure the line endings are CRLF and that I have CRLF at the end of the file.
8 Answers 8
If the last command fails pause won’t work.
You can fix it by putting «call» behind the command you are running (whatever command is before the pause) then the pause will work.
So for example I had a phpunit batch file that looked like this:
When phpunit failed it just exited without pausing. Changing it to this made it pause correctly:
Does the last command before pause execute successfully? Mind sharing your script — at least last few commands?
Alternatively, since you seem to be using Windows7, try Timeout command and see if that is working.
I was having issues even on echo. assuming it was caused by long batch file. Pause was executing but it was not pausing, it was almost like that it was pressing a key after Pause was executed.
Tried suggested solutions above; none worked.
So just for future reference, here is what I did:
Basically just «pause > nul && pause > nul»; works every time.
I think i know where is the issue, i had the same problem. So if you are making it like this, you creating a new file and put all the batch info inside it and save it like normal text and after this just rename the extension it won’t work :). You have to save it via the text editor and from there you have to choose «Batch file(.bat;.cmd;*.nt)» for example Notepad++, its probably because of the encoding so do it like this and i thnk it will be ok. GL ! 🙂
Just addition to Tim’s answer, if you want the window to always display, you can write the .bat file like:
I have the same problem. This occurs because of two reasons:
The first one is when running the batch file as administrator.
I have moved my batch file to desktop and try it as administrator and it works fine.
I have tried moving the batch file to any disk root (like C:\ D:\ etc.) and it works correctly.
I have tried moving the batch file to any directory with spaces and it works correctly.
The second and main reason is: There was some special characters (like @ or & or something like that) in the batch file’s directory.
Just find this special character and remove it from the folder name. And it will work correctly.
Источник
Bat файл pause не работает
Рассмотрим основные варианты организации ожидания ( паузы ) в bat / cmd файлах.
Для решения этой задачи в операционных системах, начиная с VISTA, присутствует команда timeout. Так, для ожидания 10 секунд следует выполнить команду.
Если не использовать параметр /NOBREAK, то ожидание может быть прервано нажатием любой клавиши.
Поскольку эта задача вставала перед разработчиками задолго до появления этой утилиты, те, у которых операционная система младше, могут воспользоваться накопившемся опытом.
Для организации паузы есть специальная утилита, входящая в состав Resource Kit (Ресурскита).
Пакеты Microsoft Windows Deployment Kit и Windows Resource Kit бесплатно распространяется microsoft.com. Этот пакет содержит ряд полезных и. как бы так сказать. других утилит.
Если вы уже устали бродить по бескрайним просторам сайта microsoft.com, постоянно возвращаясь на одни и те же страницы, то можете скачать эту утилиту здесь
Как и во многих других случаях, может помочь утилита nircmd.
(На момент написания страницы описание возможностей утилиты было здесь. C этим списком я рекомендую ознакомится, даже если для текущей задачи будет использовано другое решение.)
На просторах интернета можно найти утилиту wait.exe. Точнее, даже несколько разных, включая исходные тексты программы. Поэтому я не привожу здесь параметров вызова, смотрите их описание.
Для организации паузы можно использовать утилиты, ожидающих определенное событие заданное время.
При условии, что событие не наступит, получается ожидание требуемого интервала времени.
Так, паузу можно создать при помощи команды ping:
-n 1 — выполнить один запрос
-w 100000 — ждать ответа 100 секунд
(значение указывается в миллисекундах)
10.10.254.254 — IP адрес, который заведомо не существует в локальной сети (важно!), следовательно, никогда не ответит на ping т. е. событие не наступит.
>nul — перенаправление всего вывода команды ping в никуда.
Еще одно решение — посылать пинг на заведомо существующий адрес — т. е. самому себе. Количество посылаемых пакетов должно быть на единицу больше количества ожидаемых секунд. Так, для ожидания 5 секунд следует выполнить команду:
В том же пакете Ресурскит есть утилита choice, которую при известной доле извращенности можно использовать для тех же целей:
Для любителей экзотики.
Можно вычислить время окончания интервала ожидания и занять чем-то несчастный процессор до наступления этого события. Как результат — пауза организована только средствами bat / cmd.
Привожу слегка исправленный пример, взятый с сайта http://www.oszone.net.
0,-3% :: пауза на 15 секунд call :sleep 15 :: Другие действия echo Сейчас %time:
0,-3% pause goto :EOF :sleep echo Пауза на %1 секунд. set /a ftime=100%time:
6,-3%%%100+%1 if %ftime% GEQ 60 set /a ftime-=60 :loop set ctime=%time:
6,-3% if /i %ftime% NEQ %ctime% goto :loop exit /b 0
Данная процедура позволит организовать задержку в выполнении. Время ожидания должно быть меньше 60 сек.
Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).
Новый раздел о средствах командной строки в рамках этого же проекта расположен здесь
Источник