批处理文件,用于在其他唯一文件中复制/粘贴唯一命名的文件

时间:2018-02-01 16:30:35

标签: batch-file cmd unique

我有一个包含多个zip文件的文件夹。它们都是在数据库名称(Database2)之后用时间戳(YYYYMMDDTTTTTT)唯一命名的。文件名的末尾有Full或Log。名称示例:

Database2-20180201010002-(94ea0-0183-4722-93-4ce2a1fz54)-Full.zip
Database2-20180201000028-(94ea0-0183-4722-93-4ce2a1fz54)-Log.zip
Database2-20180131000021-(94ea0-0183-4722-93-4ce2a1fz54)-Full.zip
Database2-20180131000042-(94ea0-0183-4722-93-4ce2a1fz54)-Log.zip
Database2-20180130000017-(94ea0-0183-4722-93-4ce2a1fz54)-Full.zip
Database2-20180130000008-(94ea0-0183-4722-93-4ce2a1fz54)-Full.zip

我正在寻找一个批量文件来复制当天" Full" zip文件并将其粘贴到不同的文件夹中。

  

Database2-20180201010002-(94ea0-0183-4722-93-4ce2a1fz54)-Full.zip

我不确定如何搜索文件名的两个不同部分。还应注意,时间戳的时间部分是完全随机的。

任何帮助将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用FOR / F命令捕获WMIC命令的输出,以获取以标准格式分配给变量的日期。然后,您可以使用该变量和通配符来复制或移动文件。

@echo off
REM Get todays date
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"

REM set year month and day to a variable.
set yyyymmdd=%dt:~0,8%

move "Database2-%yyyymmdd%*-(94ea0-0183-4722-93-4ce2a1fz54)-Full.zip" "C:\somefolder\"

答案 1 :(得分:0)

我看到你已经选择了答案。这也可以在PowerShell中完成。如果您确信要移动正确的文件,请删除最后的-WhatIf

Move-Item -Path $('.\Database2-'+$(Get-Date -f 'yyyyMMdd')+'*-Full.zip') -Destination '..\mt2\' -WhatIf
相关问题