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

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

Ответить
Настройки темы
CMD/BAT - [решено] Помогите определить относительный путь до папки!

Аватара для azot111

Новый участник


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

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


Изменения
Автор: azot111
Дата: 10-03-2013
Всем привет! Есть один вопрос!

Как можно средствами CMD найти папку test1 и вычислить её абсолютный путь, затем подставить его в данный команду?

(Также известно что папка test1 лежит в папке test "test/test1" )

7za.exe x -yo"суда подставляем абсолютный путь/ test1" "_tmp\tets.7z"

Если это возможно! Заранее спасибо!

Отправлено: 08:41, 10-03-2013

 

Ветеран


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

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


azot111, а как Вы без программирования определяете? Как поступаете, если искомых папок оказалось несколько?

Что вообще известно о папке? Из примера не очень ясно, на что ориентироваться: то ли только на имя «нужная папка», то ли на относительный путь «test\нужная папка».
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:03, 10-03-2013 | #2



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

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


Аватара для azot111

Новый участник


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

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


Прошу извинения чёт я впарился! Переписал вопрос теперь всё верно!

Последний раз редактировалось azot111, 10-03-2013 в 11:37.


Отправлено: 10:25, 10-03-2013 | #3


Ветеран


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

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


azot111, расставьте, пожалуйста, в сообщении знаки препинания. Для придания ему смысла.
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:47, 10-03-2013 | #4


Ветеран


Contributor


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

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


Код: Выделить весь код
@Echo Off
cls

Set What=\Папка 1\Папка 2\.

SetLocal EnableExtensions EnableDelayedExpansion

For %%d 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 Call :Action %%d:\
GoTo :Eof

:Action
If Not Exist %1 GoTo :Eof
Echo %1 

FOR /R %1 %%p IN (.) DO (
	Set Tpath=%%p
	If NOT "!Tpath:%What%=!"=="%%p" (
		Set TPath=!TPath:~0,-1!
		Echo !TPath!
	)
)
При задании искомой цепочки имён папок обратите внимание на то, что в батнике в конце цепочки необходимо поставить точку. Вместо
Echo !TPath!
Вы вольны поставить свою команду, например, вызов упаковщика.
В переменной !TPath! содержится искомый путь.
Если в задаваемых именах имеются русские буквы, батник должен быть записан в 866 (DOS) кодировке
Вы не ответили на вопрос Iska
Цитата:
Как поступаете, если искомых папок оказалось несколько?

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


Последний раз редактировалось megaloman, 10-03-2013 в 13:14.

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

Отправлено: 12:53, 10-03-2013 | #5


Аватара для azot111

Новый участник


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

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


megaloman Спасибо большое!Сори за то что я тут раз 100 переписал вопрос!

Цитата megaloman:
Как поступаете, если искомых папок оказалось несколько?
Эти две папки уникальны

Отправлено: 13:02, 10-03-2013 | #6


Ветеран


Contributor


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

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


Если папку надо найти один раз (Эти две папки уникальны), то, чтобы не искать зря на других дисках
Код: Выделить весь код
@Echo Off
cls

Set What=\Папка 1\Папка 2\.

SetLocal EnableExtensions EnableDelayedExpansion

Set L=0
For %%d 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 If !L! EQU 0 Call :Action %%d:\
GoTo :Eof

:Action
If Not Exist %1 GoTo :Eof
Echo %1 

FOR /R %1 %%p IN (.) DO (
	Set Tpath=%%p
	If NOT "!Tpath:%What%=!"=="%%p" (
		Set TPath=!TPath:~0,-1!
		Set L=1
		Echo !TPath!
	)
)

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


Отправлено: 13:40, 10-03-2013 | #7



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Определить путь установки приложения в реестре и скопировать файлы Dr_Arich Скриптовые языки администрирования Windows 0 28-05-2012 09:12
CMD/BAT - Определить путь и запись в реестр gen0m.rsw Скриптовые языки администрирования Windows 3 15-10-2010 15:23
CMD/BAT - [решено] BAT to EXE Не может определить путь к файлу men232 Скриптовые языки администрирования Windows 4 07-10-2010 20:09
[решено] Default User или как сделать относительный путь к нему AppleNTU Автоматическая установка Windows 2000/XP/2003 9 17-08-2007 11:52
Как скопировать в буфер шелла путь до текущего католога? Sharkky Общий по Linux 14 19-03-2004 08:45




 
Переход