批处理文件:将文件复制到未知文件夹名称

Batch File: Copying files to an unknown folder name

我进行了搜索,但没有找到针对此特定问题的解决方案。

我正在处理批处理文件,但遇到一个问题,我需要将一个目录备份到一个名称因计算机而异的目录中。目标文件夹为 C:\XXXXXX-random。 X是6个数字后面的字符未知

有没有一种方法可以让批处理文件识别 "XXXXXX-" 格式的文件并将其放入变量(例如 %BackupDirName%)?从这里我可以利用以下内容。

xcopy %workdrive%:\DIR_TO_BACKUP "c:\%BackupDirName%"  /e /i /h /y

我一直在研究 findstr,但似乎得不到任何有用的结果。

我承认这超出了我的能力范围。

@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir\t w o"

FOR /d %%a IN ("%sourcedir%\??????-*") DO (
 FOR /f "delims=-" %%b IN ("%%~nxa") DO (
  SET /a num=1%%b 2>nul
  IF NOT ERRORLEVEL 1 ECHO %%b %%a
 )
)

GOTO :EOF

您需要更改 sourcedir 的设置以适合您的情况。

扫描符合模式 6_characters-something%%a 的目录名,然后每个匹配名称,提取 -%%b 之前的部分,仅使用叶名。

将结果分配给一个虚拟变量,前面加上 1,从而抑制错误消息。如果分配生成的错误级别为 0,则 %%b 中的选定叶子(全名 %%a)是 6 位数字。

我建议你追加 ? %%~pnxa\%backupdirname% 以确保唯一性。