Подтвердить что ты не робот

Batch script, чтобы установить переменную с текущим местоположением пути

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

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

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

Ты очень сильно

4b9b3361

Ответ 1

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

set "var=%cd%"

Ответ 2

%~dp0

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

@echo off
pushd %~dp0

...

popd

Изменить. Кажется, я не понял OP. Мой пример получает местоположение текущего script, а не "Текущий каталог". +1 к jeb.

Ответ 3

Я думаю, здесь есть немного недоразумений. % 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%