我查看了搜索但未找到针对此特定问题的解决方案。
我正在使用批处理文件,并且遇到一个问题,我需要将目录备份到一个名称在计算机之间不同的目录。目标文件夹将是C:\ XXXXXX-random。 X是6个数字,后面的字符是未知的。
是否有一种方法可以利用批处理文件通过“XXXXXX-”格式识别文件并将其吐入变量(例如%BackupDirName%)?从这里我可以利用以下内容。
xcopy %workdrive%:\DIR_TO_BACKUP "c:\%BackupDirName%" /e /i /h /y
我一直在使用findstr,但似乎无法获得任何有用的结果。
我承认这超出了我的能力范围。
答案 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\
以确保唯一性。