How to append a date in batch files

后端 未结 14 2180
夕颜
夕颜 2020-12-01 03:25

I have the following line in a batch file (that runs on an old Windows 2000 box):

7z a QuickBackup.zip *.backup

How do I append the date to

14条回答
  •  孤城傲影
    2020-12-01 04:09

    I've used the environment variables technique covered here: http://cwashington.netreach.net/depo/view.asp?Index=19

    http://cwashington.netreach.net/depo/default.asp?topic=repository&move=last&ScriptType=command&SubType=Misc

    Here's the code from that site:

    ::~~Author~~.          Brett Middleton
    ::~~Email_Address~~. brettm@arches.uga.edu
    ::~~Script_Type~~.   nt command line batch
    ::~~Sub_Type~~. Misc
    ::~~Keywords~~. environment variables
    
    ::~~Comment~~.
    ::Sets or clears a group of environment variables containing components of the current date extracted from the string returned by the DATE /T command.  These variables can be used to name files, control the flow of execution, etc.
    
    ::~~Script~~.
    
    @echo off
    
    ::-----------------------------------------------------------------------------
    ::  SetEnvDate1.CMD                                                     6/30/98
    ::-----------------------------------------------------------------------------
    ::  Description  :  Sets or clears a group of environment variables containing
    ::               :  components of the current date extracted from the string
    ::               :  returned by the DATE /T command.  These variables can be
    ::               :  used to name files, control the flow of execution, etc.
    ::               :
    ::  Requires     :  Windows NT with command extensions enabled
    ::               :
    ::  Tested       :  Yes, as demonstration
    ::               :
    ::  Contact      :  Brett Middleton 
    ::               :  Animal and Dairy Science Department
    ::               :  University of Georgia, Athens
    ::-----------------------------------------------------------------------------
    ::  USAGE
    ::
    ::  SetEnvDate1 can be used as a model for coding date/time routines in
    ::  other scripts, or can be used by itself as a utility that is called
    ::  from other scripts.
    ::  
    ::  Run or call SetEnvDate1 without arguments to set the date variables.
    ::  Variables are set for the day abbreviation (DT_DAY), month number (DT_MM),
    ::  day number (DT_DD) and four-digit year (DT_YYYY).
    ::
    ::  When the variables are no longer needed, clean up the environment by
    ::  calling the script again with the CLEAR argument.  E.g.,
    ::
    ::       call SetEnvDate1 clear
    ::-----------------------------------------------------------------------------
    ::  NOTES
    ::
    ::  A time variable could be added by parsing the string returned by the
    ::  built-in TIME /T command.  This is left as an exercise for the reader. B-)
    ::
    ::  This script illustrates the following NT command extensions:
    ::
    ::  1.  Use of the extended IF command to do case-insensitive comparisons.
    ::
    ::  2.  Use of the extended DATE command.
    ::
    ::  3.  Use of the extended FOR command to parse a string returned by a
    ::      command or program.
    ::
    ::  4.  Use of the "()" conditional processing symbols to group commands
    ::      for conditional execution.  All commands between the parens will
    ::      be executed if the preceeding IF or FOR statement is TRUE.
    ::-----------------------------------------------------------------------------
    
    if not "%1" == "?" goto chkarg
    echo.
    echo Sets or clears date/time variables in the command environment.
    echo.
    echo    SetEnvDate1 [clear]
    echo.
    echo When called without arguments, the variables are created or updated.
    echo When called with the CLEAR argument, the variables are deleted.
    echo.
    goto endit
    
    ::-----------------------------------------------------------------------------
    ::  Check arguments and select SET or CLEAR routine.  Unrecognized arguments
    ::  are ignored and SET is assumed.
    ::-----------------------------------------------------------------------------
    
    :chkarg
    
    if /I "%1" == "CLEAR" goto clrvar
    goto setvar
    
    ::-----------------------------------------------------------------------------
    ::  Set variables for the day abbreviation (DAY), month number (MM), 
    ::  day number (DD) and 4-digit year (YYYY). 
    ::-----------------------------------------------------------------------------
    
    :setvar
    
    for /F "tokens=1-4 delims=/ " %%i IN ('date /t') DO (
    set DT_DAY=%%i
    set DT_MM=%%j
    set DT_DD=%%k
    set DT_YYYY=%%l)
    
    goto endit
    
    ::-----------------------------------------------------------------------------
    ::  Clear all variables from the environment.
    ::-----------------------------------------------------------------------------
    
    :clrvar
    for %%v in (DT_DAY DT_MM DT_DD DT_YYYY) do set %%v=
    goto endit
    
    :endit
    

提交回复
热议问题