Как проверить, является ли файл каталогом в пакетном скрипте? - PullRequest
63 голосов
/ 26 сентября 2008

Есть ли способ узнать, является ли файл каталогом?

У меня есть имя файла в переменной. В Perl я могу сделать это:

if(-d $var) { print "it's a directory\n" }

Ответы [ 22 ]

0 голосов
/ 11 июня 2013

Хорошо ... трюк 'nul' не работает, если вы используете кавычки в именах, которые составляют большинство файлов с длинными именами или пробелами.

Например,

if exist "C:\nul" echo Directory

ничего не делает, но

if exist C:\nul echo Directory

работает.

Я наконец-то придумал это, которое, казалось, работало для всех случаев:

for /f %%i in ('DIR /A:D /B %~dp1 ^| findstr /X /c:"%~nx1"') do echo Directory

или, если вы можете быть уверены, что удовлетворяете всем требованиям для 'nul', решение:

if exist %~sf1\nul echo Directory

Поместите их в командный файл, например, «test.bat», и выполните «test.bat MyFile».

0 голосов
/ 15 апреля 2013

Разве мы не можем просто проверить это:

IF [%~x1] == [] ECHO Directory

Кажется, это работает для меня.

...