Получить имя текущей папки командой DOS?

Действительно ли возможно получить имя текущей папки (не путь текущего каталога) при помощи команды DOS? Если так, как?

Самое близкое, которое я получил, было этим, но это не делает этого:

for /f "delims=\" %%a in ("%CD%") do set CURR=%%a
echo.DIR: %CURR%

примечание: вышеупомянутая попытка была я пытающийся маркировать строку и получить последний маркерный набор как ВОРКОВАТЬ переменную.

63
задан 23.06.2012, 12:43

2 ответа

Самым коротким путем я нашел:

for %I in (.) do echo %~nxI

или в рамках .bat сценария:

for %%I in (.) do echo %%~nxI

или в .bat с Получают значение в переменной.

for %%I in (.) do set CurrDirName=%%~nxI
echo %CurrDirName%

Объяснение: http://www.robvanderwoude.com/ntfor.php

nx означает имя файла и расширение только

88
ответ дан 07.12.2019, 08:15

Если Вы хотите знать текущее местоположение пакетного файла (и если Ваш Windows не является очень древним выпуском), ввести for /? в окне 'DOS box'. Прокрутить вниз. Читать.

Вы узнаете, что можно теперь считать (из пакетного файла) эти переменные:

%0      - as the name how this batchfile was called
%~d0    - as the drive letter where this batchfile is located ('\\' in case of share)
%~p0    - as path (without the drive letter) where this batchfile is located
%~n0    - as filename (without suffix) of this batchfile
%~x0    - as filename's suffix (without filename) of this batchfile
%~a0    - as this batchfile's file attributes
%~t0    - as this batchfile's date+time
%~z0    - as this batchfile's filesize
%~dpnx0 - as this batchfile's fully qualified path+filename
[... and then some more ...]

Это работает на многие случаи. Примите, batchfile называют mytest.bat. Можно назвать его по-разному:

  1. ..\..\to\mytest.bat ............................... (относительный путь)
  2. d:\path\to\mytest.bat ........................... (полный путь)
  3. \\fileserver\sharename\mytest.bat ... (путь на удаленной доле)

... и Вы будете всегда получать правильное значение в своих переменных.

30
ответ дан 07.12.2019, 08:15

Теги

Похожие вопросы