Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Задача: текущей папке присвоить свободную букву диска

Ответить
Настройки темы
CMD/BAT - [решено] Задача: текущей папке присвоить свободную букву диска

-!-


Сообщения: 3792
Благодарности: 224

Профиль | Отправить PM | Цитировать


Задача: текущей папке присвоить свободную букву диска.
Т.е., например, файл file.bat расположен в каталоге C:\Folder\Proga1. Следовательно, в file.bat должно быть что-то вроде этого:
Код: Выделить весь код
dir=текущий_каталог      // "C:\Folder\Proga1"
letter=свободная_буква_диска // например, W:
subst letter dir

Отправлено: 17:13, 12-06-2010

 

Аватара для Morpheus

Ветеран


Сообщения: 12426
Благодарности: 2328

Профиль | Отправить PM | Цитировать


dascon, так что ли?
Код: Выделить весь код
@echo off
set dir="C:\Folder\Proga1"
set letter="W:"
subst %letter% %dir%
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:52, 12-06-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


-!-


Сообщения: 3792
Благодарности: 224

Профиль | Отправить PM | Цитировать


нет

Отправлено: 00:40, 13-06-2010 | #3


-!-


Сообщения: 3792
Благодарности: 224

Профиль | Отправить PM | Цитировать


dir и letter должны "вычисляться". Или это невозможно?

Отправлено: 01:06, 13-06-2010 | #4


Аватара для Clever_man

Старожил


Сообщения: 345
Благодарности: 29

Профиль | Отправить PM | Цитировать


Вместо dir используйте %CD% (рабочий каталог содержит, те тот, в котором вызывается bat-файл)
По поводу имени диска: если вызывать subst с буквой диска, которая существует, то ошибка. Тогда можно попробовать перебирать буквы по алфавиту, до тех пор, пока буква занята. Щас попробую освежить свои знания по коммандной строке, может выдам чего ))

-------
Кто ищет, тот всегда найдет...

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:19, 13-06-2010 | #5


-!-


Сообщения: 3792
Благодарности: 224

Профиль | Отправить PM | Цитировать


ок, выяснили, что:
Код: Выделить весь код
set dir="%cd%"
осталось
set letter=??????????????

Отправлено: 02:06, 13-06-2010 | #6


Аватара для Clever_man

Старожил


Сообщения: 345
Благодарности: 29

Профиль | Отправить PM | Цитировать


dascon, да можно прямо так:
Код: Выделить весь код
subst x: %CD%
Я не знаю, как буквы перебрать =\

-------
Кто ищет, тот всегда найдет...


Отправлено: 02:48, 13-06-2010 | #7



Moderator


Сообщения: 53181
Благодарности: 15431

Профиль | Отправить PM | Цитировать


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
Уточните: либо текущей папке, либо папке, в которой расположен батник (они не обязательно совпадают).
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:33, 13-06-2010 | #8


Ветеран


Contributor


Сообщения: 2709
Благодарности: 1685

Профиль | Отправить PM | Цитировать


Я бы предпочел перебор дисков делать не от C к Z, а наоборот, или еще в каком-нибудь ином порядке, так как при подсоединении флешки ей присваивается первая свободная буква диска, при этом буква диска, организованная Subst, считается свободной.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:48, 13-06-2010 | #9


-!-


Сообщения: 3792
Благодарности: 224

Профиль | Отправить PM | Цитировать


Цитата:
Уточните: либо текущей папке, либо папке, в которой расположен батник (они не обязательно совпадают)
в которой расположен батник

Отправлено: 17:45, 13-06-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Задача: текущей папке присвоить свободную букву диска

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Безопасность - присвоить папке пароль dgek Программное обеспечение Windows 10 05-02-2010 08:30
VBS/WSH/JS - [решено] Присвоить атрибуты файлу/папке через скрипт boss911 Скриптовые языки администрирования Windows 4 10-11-2009 06:19
Разное - [решено] Как присвоить переменной путь к текущей директории? njg Microsoft Windows 2000/XP 1 18-01-2009 21:22
Разное - Изменить в программе букву диска d_u Программирование и базы данных 9 05-01-2009 18:56
Как изменить букву диска (СD)? Guest Хочу все знать 2 18-02-2004 19:32




 
Переход