Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Помогите определить относительный путь до папки! (http://forum.oszone.net/showthread.php?t=255910)

azot111 10-03-2013 08:41 2107751

Помогите определить относительный путь до папки!
 
Всем привет! Есть один вопрос!

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

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

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

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

Iska 10-03-2013 10:03 2107780

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

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

azot111 10-03-2013 10:25 2107789

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

Iska 10-03-2013 10:47 2107809

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

megaloman 10-03-2013 12:53 2107884

Код:

@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
Цитата:

Как поступаете, если искомых папок оказалось несколько?

azot111 10-03-2013 13:02 2107890

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

Цитата:

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

Эти две папки уникальны

megaloman 10-03-2013 13:40 2107913

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

@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!
        )
)



Время: 14:18.

Время: 14:18.
© OSzone.net 2001-