пакетный скрипт для установки переменной с текущим расположением пути - PullRequest
40 голосов
/ 22 июля 2011

Как я могу установить переменную с текущим местоположением?например, если я попаду в c: \ test и установлю переменную, это будет test .. а если я попаду внутрь c: \ test \ test2, то переменная будет test2?...

Я подумываю об использовании for, чтобы получить доступ ко многим папкам и проверить, существует ли какой-либо файл, если правильный файл существует, я хочу установить текущую папку в переменную, чтобы я мог скопироватьпуть и скопируйте эту папку ...

Хорошо, так что Основная проблема - скопировать остальные файлы в ту же папку, что и .inf ..., пожалуйста, помогите!

Спасибоочень

Ответы [ 3 ]

68 голосов
/ 22 июля 2011

Текущий каталог находится в «теневой» переменной cd.
Вы можете попробовать

set "var=%cd%"
13 голосов
/ 22 июля 2011
%~dp0

Это распространяется на диск и путь к текущему пакетному файлу.Я обычно окружаю свои командные файлы чем-то вроде:

@echo off
pushd %~dp0

...

popd

Редактировать : Кажется, я не понял ОП.Мой пример получает местоположение текущего запущенного скрипта, а не «Текущий каталог».+1 к джебу.

2 голосов
/ 23 июля 2011

Я думаю, здесь есть небольшая путаница.% CD% всегда имеет текущий каталог, поэтому вам не нужно ничего добавлять, чтобы иметь его.Однако, перечитывая исходный вопрос, я думаю, что вам нужна ПОСЛЕДНЯЯ ЧАСТЬ текущего каталога, то есть имя текущего местоположения, исключая все предыдущие местоположения.Если это так, то вы можете использовать это:

set i=0
:nextdir
set /a i+=1
for /f "tokens=%i% delims=\" %%a in ("%CD%") do if not "%%a" == "" set lastdir=%%a& goto nextdir
echo Current location: %lastdir%
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...