Показать полную графическую версию : [решено] Помогите определить относительный путь до папки!
Всем привет! Есть один вопрос!
Как можно средствами CMD найти папку test1 и вычислить её абсолютный путь, затем подставить его в данный команду?
(Также известно что папка test1 лежит в папке test "test/test1" )
7za.exe x -yo"суда подставляем абсолютный путь/ test1" "_tmp\tets.7z"
Если это возможно! Заранее спасибо!
azot111, а как Вы без программирования определяете? Как поступаете, если искомых папок оказалось несколько?
Что вообще известно о папке? Из примера не очень ясно, на что ориентироваться: то ли только на имя «нужная папка», то ли на относительный путь «test\нужная папка».
Прошу извинения чёт я впарился! Переписал вопрос теперь всё верно!
azot111, расставьте, пожалуйста, в сообщении знаки препинания. Для придания ему смысла.
megaloman
10-03-2013, 12:53
@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 Спасибо большое!Сори за то что я тут раз 100 переписал вопрос!
Как поступаете, если искомых папок оказалось несколько?
Эти две папки уникальны
megaloman
10-03-2013, 13:40
Если папку надо найти один раз (Эти две папки уникальны), то, чтобы не искать зря на других дисках @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!
)
)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.