Пакетное помещение вар из верхней петли в / г
Привет, я работаю над сценарием, который в основном для данной папки должен видеть, существует ли в этой папке jboss*\server. Прежде всего, я не могу включить jboss*/server, а только jboss*, в основном, подстановочный знак можно использовать только на имя файла, а не путь, это так, как это должно быть? Таким образом, чтобы обойти это, я думаю о внутренних циклах, которые решат это для меня, вот как я начал это делать
set jboss_dir_list=c: C:\TecsysDev\iTopiaControlPanel\trunk
for %%f in (%jboss_dir_list%) do (
for /r %f% %%G in (jboss*) do echo %%G
rem for /f "usebackq delims=" %%D in (`dir /b %%f\jboss*`) do set "jboss_home_list=%jboss_home_list%%%D"
)
Я думал о включении третьего внутреннего цикла, который будет искать папку на сервере, но второй не работает, потому что% f% не расширяется, он пуст, и поэтому поиск выполняется в реальном каталоге dos, я попробовал с %%f%%, но все равно ничего, как я могу получить это вкратце?
2 ответа
Мое предложение, если %jboss_dir_list%
переменная с разделенными пробелами строками:
for %%f in (%jboss_dir_list%) do for /f "delims=" %%G in ('dir /b /s /a-d "%%~f\jboss*"') do echo %%G
Я использую findstr для "jboss.*\ Server", используя reqex
@echo off
setlocal EnableDelayedExpansion
for /f "tokens=*" %%a in ('dir /A:D /B /S "C:\TecsysDev\iTopiaControlPanel\trunk\"') do (
echo %%a|findstr "jboss.*\server">nul
if !errorlevel!==0 echo %%a
rem Add your code here.
)