【发布时间】:2016-05-31 13:19:57
【问题描述】:
我正在尝试使用特定(绝对完整路径)和 * 通配符文件/文件夹名称组合显示文件/文件夹内容的循环,但我的代码正在跳过 * 通配符搜索。我正在使用 DIR 命令进行搜索,因为它适用于文件夹/目录和文件。
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"
【问题讨论】:
标签: windows batch-file