Batch file 从一个目录移动文件,并将文件名的日期附加到另一个目录

Batch file 从一个目录移动文件,并将文件名的日期附加到另一个目录,batch-file,Batch File,我有一个如下的批处理脚本 move /Y E:\Scripts\*.sql E:\Scripts\OBIEE 假设在E:\Scripts中我有一个文件insert.sql,我想将其保存在E:\Scripts\OBIEE中 插入_31102012.sql,其中31102012是当前日期2012年10月31日 有什么想法吗?这将把日期(_YYYYMMDD)附加到E:\Scripts\目录中的所有.SQL文件,然后将它们移动到E:\Scripts\OBIEE\子文件夹中 @echo off cd E

我有一个如下的批处理脚本

move /Y E:\Scripts\*.sql E:\Scripts\OBIEE
假设在E:\Scripts中我有一个文件insert.sql,我想将其保存在E:\Scripts\OBIEE中 插入_31102012.sql,其中31102012是当前日期2012年10月31日

有什么想法吗?

这将把日期(_YYYYMMDD)附加到E:\Scripts\目录中的所有.SQL文件,然后将它们移动到E:\Scripts\OBIEE\子文件夹中

@echo off
cd E:\Scripts\
set cur_yyyy=%date:~10,4%
set cur_mm=%date:~4,2%
set cur_dd=%date:~7,2%
for /f %%f in ('dir /b *.sql') do (
rename %%f %%~nf_%cur_yyyy%%cur_mm%%cur_dd%%%~xf
move %%~nf_%cur_yyyy%%cur_mm%%cur_dd%%%~xf ./OBIEE/
)

谢谢你,瑞克。如果只有一个文件怎么办?如果\Scripts\文件夹中只有一个文件,它仍将重命名\移动该文件。如果有多个SQL文件,但您只想移动一个,您可以将“*.SQL”更改为针对特定文件(即“Insert.SQL”),好的,非常感谢。它首先工作,但第二次尝试产生了一个错误:系统无法找到指定的文件。如果我可以问一下,帮助中的for/f%%f in('dir/b*.sql')中的/b是干什么的:“/b使用裸格式(无标题信息或摘要)”。因此,它确保您只获取文件名。运行“dir/?”以获取完整详细信息。