Показать полную графическую версию : [решено] Задача: текущей папке присвоить свободную букву диска
Задача: текущей папке присвоить свободную букву диска.
Т.е., например, файл file.bat расположен в каталоге C:\Folder\Proga1. Следовательно, в file.bat должно быть что-то вроде этого:
dir=текущий_каталог // "C:\Folder\Proga1"
letter=свободная_буква_диска // например, W:
subst letter dir
Morpheus
12-06-2010, 23:52
dascon, так что ли?
@echo off
set dir="C:\Folder\Proga1"
set letter="W:"
subst %letter% %dir%
dir и letter должны "вычисляться". Или это невозможно?
Clever_man
13-06-2010, 01:19
Вместо dir используйте %CD% (рабочий каталог содержит, те тот, в котором вызывается bat-файл)
По поводу имени диска: если вызывать subst с буквой диска, которая существует, то ошибка. Тогда можно попробовать перебирать буквы по алфавиту, до тех пор, пока буква занята. Щас попробую освежить свои знания по коммандной строке, может выдам чего ))
ок, выяснили, что:
set dir="%cd%"
осталось
set letter=??????????????
Clever_man
13-06-2010, 02:48
dascon, да можно прямо так:
subst x: %CD%
Я не знаю, как буквы перебрать =\
Petya V4sechkin
13-06-2010, 11:33
dascon, можно так:
@Echo Off
For %%I In (C D E F G H I J K L M N O P Q R S T U V W X Y Z) Do Subst %%I: "%CD%" >nul && GoTo ExitLoop
Echo Нет свободных букв дисков
:ExitLoop
Уточните: либо текущей папке, либо папке, в которой расположен батник (они не обязательно совпадают).
megaloman
13-06-2010, 15:48
Я бы предпочел перебор дисков делать не от C к Z, а наоборот, или еще в каком-нибудь ином порядке, так как при подсоединении флешки ей присваивается первая свободная буква диска, при этом буква диска, организованная Subst, считается свободной.
Уточните: либо текущей папке, либо папке, в которой расположен батник (они не обязательно совпадают)
в которой расположен батник
Petya V4sechkin
13-06-2010, 18:10
dascon, тогда так:
@Echo Off
Set P=%~dp0
Set P=%P:~0,-1%
For %%I In (Z Y X W V U T S R Q P O N M L K J I H G F E D C) Do Subst %%I: "%P%" >nul && GoTo ExitLoop
Echo Нет свободных букв дисков
:ExitLoop
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.