1

到目前为止我所做的(在带有前导空格的 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

谢谢,

4

2 回答 2

1

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

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

于 2013-08-31T23:29:24.780 回答
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
于 2013-08-31T20:55:35.510 回答