我有一个包含多个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
我不确定如何搜索文件名的两个不同部分。还应注意,时间戳的时间部分是完全随机的。
任何帮助将不胜感激。谢谢!
答案 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