2016-12-23 2 views
0

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

Например, у меня есть эта папка stuct:

Z:\Folder_1\1234_name1\Folder_2\Folder_3\Folder_4\Folder_5 
Z:\Folder_1\3456_name2\Folder_2\Folder_3\Folder_4\Folder_5 
Z:\Folder_1\7891_name3\Folder_2\Folder_3\Folder_4\Folder_5 
Z:\Folder_1\1596_name4\Folder_2\Folder_3\Folder_4\Folder_5 
... 

Так мне нужна партия, что я могу ввести номер, например 7891 и открывает папку которые соответствуют этому номеру Z:\Folder_1\7891_name3\Folder_2\Folder_3\Folder_4\Folder_5,

Проблема в том, что я просто знаю число, но не имя перед ним. Остальные, Folder_1, Folder_2, Folder_3, Folder_4 и Folder_5 всегда одно и то же имя.

Я пытался что-то вроде:

cls 
@ECHO OFF 
:CALLNUMBER 

echo Number? 
set/p "Number=>" 


%SystemRoot%\explorer.exe "Z:\Folder_1\%Number%*\Folder_2\Folder_3\Folder_4\Folder_5" 

Это не работает, потому что он не принимает %Number%* так он открывает свою папку документов.

ответ

0

Вы можете использовать wild-cards (?, *) только в самом последнем элементе пути; используйте for как обход:

@echo off 
echo Number? 
set /P Number=">" 

for /D %%D in ("Z:\Folder_1\%Number%_*") do (
    "%SystemRoot%\explorer.exe" "%%~D\Folder_2\Folder_3\Folder_4\Folder_5" 
) 
+0

Большое вам спасибо ... Этот наконечник диких карт в середине пути поможет мне в будущем ... – Kaijyuu

Смежные вопросы