Удалите имя родительского каталога из команды echo% cd% - PullRequest
0 голосов
/ 15 мая 2011

Мы знаем, что команда echo% cd% печатает рабочий каталог. Предположим, что это «C: \ test \ bin \ run». Я хочу знать, как удалить «run» из строки.каталог "run" второй раз может быть каталогом "stop".поэтому мы не можем использовать команду замены строки.я думаю удалить строку после последней "\" .Кто-нибудь знает, как это сделать в командной строке Windows (cmd)

Ответы [ 2 ]

1 голос
/ 16 мая 2011

Если все в порядке, смените dirs во время процесса, как насчет:

set x=%cd%
cd ..
set parent=%cd%
cd %x%
0 голосов
/ 15 апреля 2013

в командной строке это работает:

C:\dir\folder>FOR /F "tokens=3 delims=\" %A IN ('echo %CD%') DO SET FOLDER=%A

Теперь переменная среды FOLDER содержит значение «папка»

Я использовал токены = 3, потому что папка является третьим токеном после \ -delimiters

Если вы использовали tokens = 2, переменная среды FOLDER содержала значение "dir"

Если вы использовали tokens = 1, переменная среды FOLDER содержала значение "c:"

это также должно работать в пакетных файлах, если вы замените% A на %% A следующим образом:

FOR /F "tokens=3 delims=\" %%A IN ('echo %CD%') DO SET FOLDER=%%A

На основании этого вы можете построить цикл, который повторяется до тех пор, пока FOLDER не станет пустой строкой.В цикле вам нужно будет назначить FOLDER для LASTFOLDER на каждом шаге.После завершения цикла LASTFOLDER содержит папку вашего текущего каталога.Вы также можете поместить код в отдельный скрипт «GetBaseFolder.BAT» и использовать «вызов GetBaseFolder% CD%» в основном пакете.

...