创建批处理文件以创建一个以日期作为名称的文件夹,并将文件移动到新文件夹中

时间:2016-08-30 22:30:40

标签: batch-file

我正在尝试创建一个批处理文件,用于创建具有今天日期的文件夹,然后将三个文件复制到该文件夹​​中。我通过谷歌搜索不同的解决方案将这些拼凑在一起,但我已经达到了理解的极限。如上所述,该文件创建文件夹,如果我替换?????将复制文件有一个文件夹,但我不知道如何引用我之前创建的文件夹。我寻找解决方案,但老实说,我没有找到任何我能够成功实施的解决方案。非常感谢任何帮助。

@echo off
for /f "tokens=1-5 delims=/ " %%d in ("%date%") do mkdir c:\Users\HP-ALT\Desktop\databasebackups\%%e-%%f-%%g
move C:\Users\HP-ALT\Desktop\anyfile1.db C:\Users\HP-ALT\Desktop\databasebackups\???????
move C:\Users\HP-ALT\Desktop\anyfile2.db C:\Users\HP-ALT\Desktop\databasebackups\???????
move C:\Users\HP-ALT\Desktop\anyfile3.db C:\Users\HP-ALT\Desktop\databasebackups\???????

3 个答案:

答案 0 :(得分:0)

只使用变量......:

for /f "tokens=1-5 delims=/ " %%d in ("%date%") (
    SET DayMonth=%%e
    SET MonthDay=%%f
    SET Year=%%g
)

然后使用这些变量创建目录和副本文件

答案 1 :(得分:0)

这应该可以帮助你

@Echo Off
SetLocal
Set "parentPath=C:\Users\HP-ALT\Desktop\databasebackups"
Set "Today=%Date~-10%"
Set "newDirName=%Today:/=-%"
If Not Exist "%parentPath%\%newDirName%\" (
    MD "%parentPath%\%newDirName%"2>Nul||Exit/B)
Move…

答案 2 :(得分:0)

最好使用WMIC实用程序来提取年,月和日期信息,因为%date%返回当前日期格式化为Windows短格式日期定义的区域设置,如果当前安装可能会遇到麻烦将短日期格式设置为与YYYY-MM-DD不同的格式。

    @echo off
    SETLOCAL ENABLEDELAYEDEXPANSION
    FOR /F "skip=1 tokens=1-6" %%A IN ('WMIC ^Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year /Format:table') DO (
        IF %%A GTR 0 (
        SET Day=%%A
        SET Hour=%%B
        SET Min=%%C
        SET Month=%%D
        SET Sec=%%E
        SET Year=%%F
        )
    )
    if %Month% LSS 10 set Month=0%Month%
    if %Day% LSS 10 set Day=0%Day%
    if %Min% LSS 10 set Minute=0%Minute%
    if %Hour% LSS 10 set Hour=0%Hour%

    set now=%year%-%month%-%day%_%hour%-%min%-%sec%
    set now=%now%
    mkdir %now%