Я пытаюсь получить цикл для отображения содержимого файла/папки с использованием сочетания определенных (абсолютных полных патчей) и * подстановочных имен файлов/папок, но мой код пропускает * групповой символ поиск. Я использую команду DIR для поиска, так как она хорошо работает с папками/каталогами и файлами.Windows For Loop с * Token
SETLOCAL EnableDelayedExpansion
SET VAR="c:\users\admin\documents\" "my files*" "*.MYO" "backups" "history.*" "History" "*.db" "all accounts.txt"
SET "ArchiveInclude="
FOR %%a IN (%VAR%) DO (
IF "!a::!"=="!a!" (
SET LookUpSet=DIR /ON /B /S "%%~a"
FOR /F "Delims=" %%F IN ('!LookUpSet!') DO (
SET ArchiveInclude=!ArchiveInclude! "%%~F"
)
) ELSE (SET ArchiveInclude=!ArchiveInclude! "%%~a")
)
К сожалению ArchiveInclude не включает каких-либо "мои файлы" * ".myo" или "истории." результаты поиска. %% a никогда не обрабатывает какую-либо строку, содержащую подстановочный знак *.
мне нужно ArchiveInclude, чтобы были включены все полные ссылки путь для всех файлов/папок, указанных, например,
ECHO !ArchiveInclude!
"c:\users\admin\documents\" "c:\Users\User 3\my files here\" "c:\Users\User 1\Documents\my files01.txt" "c:\Users\User 1\Documents\my files02.txt" "c:\Users\User 1\Documents\my files01.jpg" "c:\Users\User 1\Documents\my files02.jpg" "c:\Users\User 2\Documents\My Account Files.MYO" "c:\Users\User 2\Documents\Business\Sales Accounts.MYO" "c:\Program Files\history.db" "c:\Program Files\history.txt" "c:\Users\User 1\Documents\History\" "c:\Users\User 1\Documents\Databases\afile.db" "c:\Users\User 1\Documents\Databases\data.db" "c:\Users\User 1\Documents\Databases\last.db" "c:\Users\User 2\Documents\all accounts.txt"
Это будет хорошо работает для отдельных имен файлов/папок + специальные символы. Однако мне также нужен способ исключить уже заданные (полные патчи) папки/файлы из команды DIR, так как DIR будет перечислять все содержимое полностью патированной папки отдельно (что не требуется). т.е. VAR = "C: \ users \ admin \ documents \" "мои файлы *" ".myo" "backups" "history." msgstr "все accounts.txt". Команда DIR перечислит все содержимое «C: \ users \ admin \ documents \», что не требуется. Извините за отсутствие ясности в OP, я сейчас его обновил. – jkeys