Как сделать bat файл запускаемым с любого места файловой системы
У меня есть лабораторная работа на тему подготовки .bat файла, которая выглядит так
- Перейти на директорию выше относительно директории, в которой находится bat-файл и создать там директорию с именем ‘Practice0’.
- Создать в директории ‘Practice0’ поддиректорию ‘Test’ и в ней создать файл ‘about.me’, в котором в первой строке записать своё имя и фамилию, а во второй – название университета, который закончили или в котором учитесь.
- Переместить файл ‘about.me’ в директорию ‘Practice0’ и присвоить ему атрибут ‘read only’.
- Вывести информацию из файла ’about.me’ в виде: [Ваша имя и фамилия] учусь/учился в [название университета].
В отчете же сказано что
- Сделайте созданный 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 пункте, как сделать так, чтобы файл запускался из любого места, ведь при переносе файла я указываю полный путь до него, и если я перенесу батник куда-то в другое место, он выдает ошибку
Ответы (2 шт):
Сработало :)
move about.me.txt ../about.me.txt
Учитывая, что мы находимся в каталоге Test, мы можем скопировать файл "about.me.txt" в каталог уровнем выше, используя префикс "../", который и ссылается на родительский каталог.
@echo off
# перейти на диск, где находится батч-файл, в каталог "на этаж выше"
cd /d "%~dp0.."
# остальные команды
Если в батче надо получить диск/путь к батчу - соответственно используйте "%~dp0" (использовать в команде либо присвоить в переменную среды). Более подробно по выделению компонентов см. for /?. В батче %0 - это нулевой параметр комстроки, т.е. полное имя самого батча.