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

时间:2017-08-10 19:56:58

标签: batch-file variables xcopy iunknown

我查看了搜索但未找到针对此特定问题的解决方案。

我正在使用批处理文件,并且遇到一个问题,我需要将目录备份到一个名称在计算机之间不同的目录。目标文件夹将是C:\ XXXXXX-random。 X是6个数字,后面的字符是未知的。

是否有一种方法可以利用批处理文件通过“XXXXXX-”格式识别文件并将其吐入变量(例如%BackupDirName%)?从这里我可以利用以下内容。

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

我一直在使用findstr,但似乎无法获得任何有用的结果。

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

1 个答案:

答案 0 :(得分:0)

@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 - 某事%%a的目录名,然后使用每个匹配的名称,在{{1}之前提取部分通过仅使用叶名称来-

将结果(以%%b开头)分配给虚拟变量,以抑制错误消息。如果赋值生成错误级别0,则1(其全名为%%b)中的选定叶子为6位数字。

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