windows 如何在CMD的一个命令中多次操作一个变量?

yptwkmov  于 2023-02-13  发布在  Windows
关注(0)|答案(2)|浏览(203)

各位。我想知道是否有可能在一个命令中多次操作一个变量?
例如,我希望SUBSTRING和REPLACE TEXT作为以下命令:

:: Print the first 8 characters:
echo %TIME:~0:8%

:: Replace white spaces with zeros
echo %TIME: =0%

所需输出(打印时间,无毫秒,并将左侧的空白替换为0)

09:15:23

那么,有没有办法把两个变量操作合并成一个命令呢?
我想避免将时间存储在一个额外的变量中,而只是按照我想要的方式打印出来(如上所述)。

83qze16e

83qze16e1#

每个变量操作都操作 * 一个变量 *,因此您的结果需要 * 两个命令 *。但是,您可以将这两个命令放在一行中,并重复使用 * 同一个变量 *,以便不初始化 * 其他 * 变量。即:

@echo off
setlocal EnableDelayedExpansion

set "TIME=%TIME: =0%" & echo !TIME:~0,8! & set "TIME="
fumotvh3

fumotvh32#

不能在单个命令中执行,但可以在一行中执行,无需设置其他环境变量:

for /f "delims=.," %%a in ("%time: =0%") do echo %%a

您已经知道如何用零替换空格。for循环对结果进行剖析,有效地删除了厘秒。"Delims=.,"负责分隔符(某些语言中为,,其他语言中为.

相关问题