批量宏显示日期和时间后跟文本

时间:2013-08-31 19:39:57

标签: batch-file macros

到目前为止我所做的事情(在具有领先空间的WIN2K3 5.2.3790机器上显示日期和时间):

SET DATETIME=(FOR /F %%C IN ('TIME/T') DO SET /P NOW=%%C : )&(FOR /F "TOKENS=2 DELIMS= " %%A IN ('DATE/T') DO SET /P NOW=%NOW% %%A <NUL)

%DATETIME%

我想在set / p添加的日期之前删除前导空格,并为文本添加参数但无法找到解决方案。我还想在set / p解决后为http://ss64.com/nt/syntax-macros.html这里描述的文本添加一个参数。

我希望得到什么(但是使用批量宏而不是通话):

@ECHO OFF

CALL :DATETIME "HELLO WORLD "
PAUSE>NUL

:DATETIME
FOR /F "TOKENS=*" %%A IN ('DATE/T') DO FOR %%B IN (%%A) DO SET NOW=%%B
FOR /F %%C IN ('TIME/T') DO SET /P NOW=%NOW% %%C %~1< NUL

谢谢,

2 个答案:

答案 0 :(得分:1)

我得到的印象是,任务是在同一行上回显日期和时间以及文本:

echo%date%@%time% - “Hello World”

答案 1 :(得分:0)

当你在ss64.com上引用宏时,你应该尝试使用那里显示的语法。

这不是一种使用%\n%格式的好方法。

@ECHO OFF
set LF=^


::Above 2 blank lines are required - do not remove
set ^"\n=^^^%LF%%LF%^%LF%%LF%^^"
SET DATETIME=( %\n%
  FOR /F "TOKENS=*" %%A IN ('DATE/T') DO ( %\n%
    FOR /F %%C IN ('TIME/T') DO SET /P "NOW=%%A%%C "^<NUL%\n%
  )%\n%
)

set datet
echo ------
%DATETIME% 
echo Hello World