【问题标题】:is this possible? "ECHO. The time is: %time /T%"这可能吗? “ECHO。时间是:%time /T%”
【发布时间】:2023-03-07 06:01:01
【问题描述】:

我有一个 stats.bat 程序,它会刷新以显示我可以拥有的最新数据。

据我所知,我几乎尝试过任何事情。

在我的脚本中,我希望它显示时间,但我希望它是这样的。

ECHO The Time Is: %time /T%

“%time /T%”将与 ECHO 行在同一行显示时间。

我已经尝试过研究它,但我找不到任何关于这个主题的东西。

【问题讨论】:

  • 您知道time /T 以及使用echo %TIME% 时输出的时间格式取决于为当前用户帐户指定的Windows 区域和语言设置。如果您的批处理文件应该始终以相同的格式输出时间,您需要命令 %SystemRoot%\System32\wbem\wmic.exe OS get localdatetime 和额外的代码以您希望独立于区域和语言设置的格式输出时间。
  • 我只是这样做了:for /f "delims=" %%a in ('time /T') do @set foobar=%%a echo The Time Is: = %foobar%跨度>

标签: windows batch-file


【解决方案1】:

试试这样的:

for /f "delims=" %%a in ('time /T') do @set foobar=%%a
echo The Time Is: = %foobar%

如需进一步讨论,请参阅this question

【讨论】:

    【解决方案2】:

    使用带有 nul 重定向的 SET /P 只是一个巧妙的小技巧。

     @echo off
     set /p ".=The time is = "<nul &TIME /T
     pause
    

    【讨论】:

    • 你甚至不需要.: set /p "=The time is = "&lt;nul &amp;TIME /T
    • @Stephan 只是我在那个实例中的编码风格。
    • @sqashman:不是批评,只是一个说明。 (我也主要用.
    【解决方案3】:

    如果你想看看我在做什么,我也明白了。这也是我使用的代码,感谢“i_am_jorf”

    for /f "delims=" %%a in ('time /T') do @set foobar=%%a
    echo The Time Is: = %foobar%
    

    【讨论】:

      【解决方案4】:
      ECHO The time is %time:~0,2%:%time:~3,2%:%time:~6,2%
      

      会给你:

      The time is 14:59:02
      

      【讨论】:

        【解决方案5】:

        我正在使用这个 cmd

        for /F "tokens=1" %%i in ('time /t') do set mytime=%%i

        echo "time is = " %mytime:~0,2%%time:~3,2%%time:~6%

        结果是:时间=094752.78

        相反,回显 %time%

        9:47:52.78

        【讨论】:

          猜你喜欢
          • 2014-11-30
          • 2011-04-04
          • 2010-12-11
          • 1970-01-01
          • 1970-01-01
          • 2011-01-08
          • 2021-08-29
          • 2012-09-05
          • 1970-01-01
          相关资源
          最近更新 更多