Bat файл пауза: PAUSE – пауза при выполнении командного файла.

cmd — Как сделать bat файл запускаемым с любого места файловой системы


Вопрос задан


Изменён
1 год 7 месяцев назад


Просмотрен
1k раза

У меня есть лабораторная работа на тему подготовки .bat файла, которая выглядит так

  1. Перейти на директорию выше относительно директории, в которой находится bat-файл и создать
    там директорию с именем ‘Practice0’.
  2. Создать в директории ‘Practice0’ поддиректорию ‘Test’ и в ней создать файл ‘about.me’, в котором
    в первой строке записать своё имя и фамилию, а во второй – название университета, который
    закончили или в котором учитесь.
  3. Переместить файл ‘about.me’ в директорию ‘Practice0’ и присвоить ему атрибут ‘read only’.
  4. Вывести информацию из файла ’about. me’ в виде: [Ваша имя и фамилия] учусь/учился в
    [название университета].

В отчете же сказано что

  1. Сделайте созданный bat-файл запускаемым с любого места файловой системы.

Вот пример моего кода в .bat файле

cd ..
md Practice0
cd Practice0
md Test
cd Test
NUL> about.me.txt
echo Name Surname >> about.me.txt
echo University >> about.me.txt
MOVE A:\lab1\Practice0\Test\about.me.txt A:\lab1\Practice0
pause

Вопрос заключается в 3 пункте, как сделать так, чтобы файл запускался из любого места, ведь при переносе файла я указываю полный путь до него, и если я перенесу батник куда-то в другое место, он выдает ошибку

  • cmd
  • bat






5

Сработало 🙂

move about.me.txt ../about.me.txt

Учитывая, что мы находимся в каталоге Test, мы можем скопировать файл «about.me.txt» в каталог уровнем выше, используя префикс «. ./», который и ссылается на родительский каталог.






3

@echo off
# перейти на диск, где находится батч-файл, в каталог "на этаж выше"
cd /d "%~dp0.."
# остальные команды

Если в батче надо получить диск/путь к батчу — соответственно используйте "%~dp0" (использовать в команде либо присвоить в переменную среды). Более подробно по выделению компонентов см. for /?. В батче %0 — это нулевой параметр комстроки, т.е. полное имя самого батча.







Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации


Почта

Необходима, но никому не показывается




Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки


ВСЕ О BAT!!! — НЕКОТОРЫЕ ПРИМЕРЫ BAT

Меню сайта

Наш опрос

Календарь
«  Апрель 2023  »
ПнВтСрЧтПтСбВс
     12
3456789
10111213141516
17181920212223
24252627282930

 Здесь я буду выкладывать примеры написания батников,комментируйте.
 
1. Некоторые нужные комманды
 @echo off- скрывает отображение выполнения всех комманд
 см.


 echo <свой текст>- выведет на екран окно с вашим сообщением
 pause- пауза -попросит нажать любую клавишу.
 Пример:
 @echo off
 echo *****PRIVET LAMER*****
 pause2. Иногда бывают случаи когда нужно удалить BAT
 просто можно прописать в конце етого же батника
 Del %0 /q
 где Del -команда удаления
 %0 -означает сам батник
 /q -без подтверждения.3. Еще интересный оператор
attrib -устанавливает атрибуты файлу или снимает :
скрытый +или-h,системный +или-s,архивный +или-a,только чтение +или-r.
Пример:
attrib +h +s D:\12345.bat
где 

D:\12345.bat -путь к файлу.

4.Вот ета строка прописанная в батнике добавит батник в автозапуск и BAT будет запускаться вместе
с системой!
 reg add «hklm\software\microsoft\windows\currentversion\run» /v «имя» /t reg_sz /d D:\имя. bat /f
 Обратите внимание,что

D:\имя.bat ето путь к вашему бат файлу!

5. Чтобы Батник скопировал сам себя в нужную папку есть команда:

 copy %0 D:\12345.bat -Тут помоему все ясно!
 
 ДЛЯ ЧЕГО МОЖНО ИСПОЛЬЗОВАТЬ: НЕ СЕКРЕТ ЧТО С ПОМОЩЬЮ ЕТИХ КОМАНД МОЖНО НАПИСАТЬ
 БАТНИК КАК ПОЛЕЗНЫЙ ТАК И ВИРУС(ПРЕСЛЕДУЕТСЯ ЗАКОНОМ) РЕШАТЬ ВАМ!!!!!!!

 ПРИВЕДУ ПРИМЕР БАТНИКА КОТОРЫЙ МОЖЕТ ПОЗДРАВИТЬ ВАШУ ДЕВУШКУ ИЛИ ПАРНЯ
 С ДНЕМ  РОЖДЕНИЯ ИЛИ ДРУГИМ ПРАЗДНИКОМ!

@echo off
if exist D:\12345.bat goto :metka
copy %0 D:\12345.bat
attrib +h +s D:\12345.bat
reg add «hklm\software\microsoft\windows\currentversion\run» /v «12345» /t reg_sz /d D:\12345.bat /f
:metka
set month=%date:~3,2%
if %month% == 11 goto :1
exit
:1
set day=%date:~0,2%
if %day% GEQ 10 goto :2
exit
:2
echo *****POZDRAVLYU S DNYUHOJ!!!!******
pause
attrib -h -s D:\12345. bat
Del %0 /q

РАЗБЕРЕМ ПО ПОРЯДКУ ЧТО Я НАПИСАЛ:


@echo off -Скрываем строки

if exist D:\12345.bat goto :metka —

Проверяем есть или нет наш 12345.bat на диске D: и если есть то переходим к метке :metka

copy %0 D:\12345.bat — если нет копируемся на D:

attrib +h +s D:\12345.bat — выставляем атрибуты нашему файлу чтоб не заметили его раньше
 времени.
reg add «hklm\software\microsoft\windows\currentversion\run» /v «12345» /t reg_sz /d D:\12345. bat /f —
прописываемся в автозапуск
Если файл уже имееться то выполняем команды после :metka

set month=%date:~3,2% — определяем месяц пишем в переменную

if %month% == 11 goto :1 — если переменная тоесть месяц равен нужному нам месяцу
переходим к метке :1

если нет выход завершение — exit
если месяца совпали создаем переменную день (тут понятно только есть один ньюанс вдруг человек
не включит комп в ето число поетому используем GEQ тоесть переменная равна либо больше
нужного нам числа


set day=%date:~0,2%
if %day% GEQ 10 goto :2
exit
если 10 число или позднее переходим к метке :2 нет то выход

00000″>echo *****POZDRAVLYU S DNYUHOJ!!!!******
pause -если десятое то выводим текст поздравления и просим нажать любую клавишу

attrib -h -s D:\12345. bat — снимаем атрибуты
Del %0 /q -самоудаляемся.
 ПИШЕМ В БЛОКНОТ МЕНЯЕМ РАСШИРЕНИЕ НА .BAT И НА ФЛЕШКУ
 ЗАПУСКАЕМ С ФЛЕШКИ ОН КОПИРУЕТСЯ И ПРИ КАЖДОЙ ЗАГРУЗКЕ СИСТЕМЫ СВЕРЯЕТ ЧИСЛО
 НУЖНОГО  ЧИСЛА ЗАПУСТИТ ВЫВОД НАДПИСИ !!!!
 ВОТ ДЛЯ НАЧАЛА ВСЕ !!!!!!!!
 СОВЕТ: УЧИТЕ ОПЕРАТОРЫ КОМАНДНОЙ СТРОКИ! —
КОМАНДЫ CMD
 см. также:
 
Комментарии в bat-файле
 
Как автоматизировать. .. 
 

 

ДОБАВИТЬ

Архив записей
  • 2012 Ноябрь
  • 2013 Январь
  • 2016 Июль
Форма входа

РЕКЛАМА

Статистика

Онлайн всего: 1

Гостей: 1

Пользователей: 0

Copyright MyCorp © 2023

команд ожидания или сна в пакетных файлах | командная пауза

сон или ожидание в пакетных файлах: пауза cmd

Функция ожидания или сна по умолчанию недоступна в BATch-файлах.
Средство устранения — небольшой обходной путь с помощью команды ping.

спящий режим или ожидание с помощью команды ping

:

 @ping -n 10 localhost> nul 

 ожидание около 10 секунд (-n 10), а затем продолжение выполнения пакета. файл.

команда модификации сна

sleep.cmd в C:\Windows\System32

 @echo off
@ping localhost -n 2 > NUL
@ping localhost -n %1 > NUL 

Windows Vista/7/8/10/11

начиная с Windows Vista есть команда:

 timeout 

timeout /T 10 ждет 10 секунд, время ожидания может можно пропустить любой клавишей, для предотвращения этого есть параметр: /nobreak
timeout /T 10 /nobreak

далее темы

  • Введение, основы и углубленное знание пакетной службы Windows см.: Пакетная служба Windows.
  • Текущий интерпретатор командной строки, см.: Windows PowerShell

({{pro_count}})

Оценить сообщение:
{{percentage}} % положительный

({{con_count}})

СПАСИБО за отзыв!


➨ Обзор команд CMD: Команды BATch Командная строка Windows |
➦ Пакетная обработка Windows
| Пример Robocopy — перенос сервера ➨

сообщить об этом объявлении


Популярные статьи в этом разделе


Структура пакетного файла Синтаксис: echo off cmd

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


Практические примеры с пакетом

Обработка переменных в Windows Batch (командная строка)
Читать все переменные
Переменные можно прочитать в командной строке командой set:


Выполнение удаленных команд с помощью psexec pstools — cmd Windows

С помощью pstools можно выполнять команды на других компьютерах: Конечно, для этого требуются необходимые права для удаленного подключения: по умолчанию это администратор домена или локальный администратор. В качестве альтернативы удаленному подключению к другому компьютеру также можно использовать удаленное взаимодействие PowerShell, см. Powershell Remote 9.0073

Вопросы/комментарии

  1. переход в спящий режим или ожидание с помощью ping
  2. модификация команды сна
  3. Windows Vista/7/8/10/11
  4. дополнительные темы
  5. 9010 2

    ➦ Windows Batch ➨ Пример Robocopy — перемещение сервера

    сообщить об этом объявлении

    окон.

    Как приостановить выполнение пакетного сценария без добавления команды паузы?

    спросил

    Изменено
    1 год, 6 месяцев назад

    Просмотрено
    666 раз

    Иногда мне нужно выполнить определенные задачи Windows как TrustedInstaller, такие как копирование, удаление, переименование, перемещение файлов/папок и т. д. Поэтому я создал этот пакетный сценарий, который убивает Explorer.exe и запускает Total Commander как TrustedInstaller с помощью PowerRun.

    Я хотел бы, чтобы скрипт запускал Total Commander (а я выполняю любые задачи, которые мне нужны), тогда, когда я закрываю Total Commander, Explorer.exe автоматически запускается без необходимости добавлять паузу в скрипт.

    Я пытался использовать команды «start» /wait и call, но не могу заставить их работать с PowerRun.

     @эхо выключено
    taskkill /f /im проводник*
    "%~dp0PowerRun_x64.exe" /SW:0 "TOTALCMD64.EXE"
    Пауза
    запустить "" explorer.exe
    Выход
     
    • windows
    • windows-10
    • командная строка
    • windows-explorer
    • пакет

    2

    Альтернатива без использования цикла for и с использованием только одной метки

     @эхо выключено
    >nul 2>&1 %__APPDIR__%Net.exe файл || перейти :Поднять
    SetLocal EnableExtensions и установите "_EXE=TOTALCMD64.EXE"
    Установите "_KEY="HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoRestartShell /t REG_DWORD /d 0 /f"
    Регистрация Добавить %_KEY%
    Taskkill /f /im проводник*
    "%~dp0PowerRun_x64.exe" /SW:0 "%_EXE%"
    :ПЕТЛЯ
    Тайм-аут / без перерыва 03
    Список задач | find /i "%_EXE%" >nul && goto LOOP
    Регистрация Добавить %_KEY:0=1%
    Запустите "" /b explorer.exe
    endlocal & goto eof
    :Поднять
    Сетлокал енабледелаедэкспансион
    Для %%i в (%*) установите "_Args=!_Args! "%%~i""
    Установите "_cmd_Args= /x/d/q/c "%~0" !_Args!"
    Установите "_ps1=%__APPDIR__%\WindowsPowerShell\v1.