найти путь к файлам в командной строке - PullRequest
1 голос
/ 23 марта 2012

Я выполняю задание пакетного сценария, в котором мне нужно вызвать один сценарий из другого. Мне нужен сценарий для запуска второго сценария, независимо от того, где мой преподаватель сохраняет эти сценарии. Как бы я это сделал? Есть ли какой-то способ найти путь к скрипту внутри скрипта и использовать его для выполнения файла. Любая помощь будет отличной. Я думаю, что мне нужно использовать%, но я не уверен. Сценарий называется Hello World.bat.

Как мне скопировать Hello World.bat в C: \, если я не знаю, в какой каталог его поместил лектор. Какие команды я бы использовал, чтобы копия работала независимо от расположения сценариев.

Ответы [ 3 ]

1 голос
/ 23 марта 2012

Я не вижу тега "DOS", но я предполагаю, что это пока. Если вам нужен весь путь, вы можете получить его, выполнив следующее:

echo %cd%

Если вы хотите только последнюю папку, это работает (внутри .bat-файла):

for %%* in (.) do @echo %%~n*

Обратите внимание, что из командной строки приведенная выше команда будет работать с одиночными%:

for %* in (.) do @echo %~n*
0 голосов
/ 23 марта 2012

извините за пакетные файлы, я не знаком, но в nix shell есть команда locate, которая может вернуть путь к файлу, если вы точно знаете имя файла и имя уникально.

как

name = $ (указать имя файла)

0 голосов
/ 23 марта 2012

Если выполняемый сценарий вызывает другие сценарии в той же папке, вы можете добавить префикс пути к «% ~ dp0» или «% ~ dps0», но не ставьте обратную косую черту между этим и именем сценарий вы звоните. Другими словами, если script1.bat вызывает script2.bat в той же папке, оператор в script1.bat будет ссылаться на «% ~ dp0script2.bat»

...