批处理文件:将文件复制到未知文件夹名称
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%
以确保唯一性。
我进行了搜索,但没有找到针对此特定问题的解决方案。
我正在处理批处理文件,但遇到一个问题,我需要将一个目录备份到一个名称因计算机而异的目录中。目标文件夹为 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%
以确保唯一性。