如何解决BAT获取时间中包含空格的问题?

更新于
2026-10-04 10:26:58
1阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计800个文字,预计阅读时间需要4分钟。

最近在项目中需要定时备份文件,使用BAT文件来自动生成文件夹名称,精确到秒:

bat脚本时间设置如下:

pushd E:\TestSetT=Date:~0,10,-Time:~0,2,-Time:~3,2,-Time:~6,2md %Tpopd

时间变量值如下:

- 时间:00:00:00- 时间:00:00:01- 时间:00:00:02- 时间:00:00:03- 时间:00:00:04- 时间:00:00:05- 时间:00:00:06- 时间:00:00:07- 时间:00:00:08- 时间:00:00:09- 时间:00:00:10- 时间:00:00:11- 时间:00:00:12- 时间:00:00:13- 时间:00:00:14- 时间:00:00:15- 时间:00:00:16- 时间:00:00:17- 时间:00:00:18- 时间:00:00:19- 时间:00:00:20- 时间:00:00:21- 时间:00:00:22- 时间:00:00:23- 时间:00:00:24- 时间:00:00:25- 时间:00:00:26- 时间:00:00:27- 时间:00:00:28- 时间:00:00:29- 时间:00:00:30- 时间:00:00:31- 时间:00:00:32- 时间:00:00:33- 时间:00:00:34- 时间:00:00:35- 时间:00:00:36- 时间:00:00:37- 时间:00:00:38- 时间:00:00:39- 时间:00:00:40- 时间:00:00:41- 时间:00:00:42- 时间:00:00:43- 时间:00:00:44- 时间:00:00:45- 时间:00:00:46- 时间:00:00:47- 时间:00:00:48- 时间:00:00:49- 时间:00:00:50- 时间:00:00:51- 时间:00:00:52- 时间:00:00:53- 时间:00:00:54- 时间:00:00:55- 时间:00:00:56- 时间:00:00:57- 时间:00:00:58- 时间:00:00:59

最近在项目上需要把文件定时备份,用BAT文件来自动生成文件夹名,精确到秒:

bat脚本时间设定如下:

pushd E:\Test set T=%date:~0,10%-%time:~0,2%%time:~3,2%%time:~6,2% md %T% popd

time变量值如下的各个操作的意义如下:

%time:~0,2% 表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取2位字符,结果是小时字段数值
%time:~3,2% 表示指针从左向右偏移3位,然后从偏移处开始提取2位字符,结果是分钟字段数值
%time:~6,2% 表示指针从左向右偏移6位,然后从偏移处开始提取2位字符,结果是秒字段数值

用%time:~0,2%%time:~3,2%%time:~6,2%时有个问题, 就是如果TIME 是08点的时候,电脑显示的是08,但是实际上用%time:~0,2%抓取的时候就会有问题,因为实际上抓到到时空格+8,这样在用md创建文件夹的时候,因为T中有空格,会创建2个文件夹:

比如现在时间是2019-08-23, 08:30:30;

T = 20190823- 83030

md %T%会创建2个文件夹:20190823-和83030这样2个文件夹。

解决办法:

把小时单独定义h,然后把h中空格用0代替,再把h加入到T中:

set h=% =0% -> 这里的‘='就是‘替换'的含意

pushd E:\Test set h=%time~0,2% set h=% =0% set T=%date:~0,10%-%h%%time:~3,2%%time:~6,2% md %T% popd

到此这篇关于BAT获取时间有空格问题的解决方法的文章就介绍到这了,更多相关BAT时间空格问题内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!

本文共计800个文字,预计阅读时间需要4分钟。

最近在项目中需要定时备份文件,使用BAT文件来自动生成文件夹名称,精确到秒:

bat脚本时间设置如下:

pushd E:\TestSetT=Date:~0,10,-Time:~0,2,-Time:~3,2,-Time:~6,2md %Tpopd

时间变量值如下:

- 时间:00:00:00- 时间:00:00:01- 时间:00:00:02- 时间:00:00:03- 时间:00:00:04- 时间:00:00:05- 时间:00:00:06- 时间:00:00:07- 时间:00:00:08- 时间:00:00:09- 时间:00:00:10- 时间:00:00:11- 时间:00:00:12- 时间:00:00:13- 时间:00:00:14- 时间:00:00:15- 时间:00:00:16- 时间:00:00:17- 时间:00:00:18- 时间:00:00:19- 时间:00:00:20- 时间:00:00:21- 时间:00:00:22- 时间:00:00:23- 时间:00:00:24- 时间:00:00:25- 时间:00:00:26- 时间:00:00:27- 时间:00:00:28- 时间:00:00:29- 时间:00:00:30- 时间:00:00:31- 时间:00:00:32- 时间:00:00:33- 时间:00:00:34- 时间:00:00:35- 时间:00:00:36- 时间:00:00:37- 时间:00:00:38- 时间:00:00:39- 时间:00:00:40- 时间:00:00:41- 时间:00:00:42- 时间:00:00:43- 时间:00:00:44- 时间:00:00:45- 时间:00:00:46- 时间:00:00:47- 时间:00:00:48- 时间:00:00:49- 时间:00:00:50- 时间:00:00:51- 时间:00:00:52- 时间:00:00:53- 时间:00:00:54- 时间:00:00:55- 时间:00:00:56- 时间:00:00:57- 时间:00:00:58- 时间:00:00:59

最近在项目上需要把文件定时备份,用BAT文件来自动生成文件夹名,精确到秒:

bat脚本时间设定如下:

pushd E:\Test set T=%date:~0,10%-%time:~0,2%%time:~3,2%%time:~6,2% md %T% popd

time变量值如下的各个操作的意义如下:

%time:~0,2% 表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取2位字符,结果是小时字段数值
%time:~3,2% 表示指针从左向右偏移3位,然后从偏移处开始提取2位字符,结果是分钟字段数值
%time:~6,2% 表示指针从左向右偏移6位,然后从偏移处开始提取2位字符,结果是秒字段数值

用%time:~0,2%%time:~3,2%%time:~6,2%时有个问题, 就是如果TIME 是08点的时候,电脑显示的是08,但是实际上用%time:~0,2%抓取的时候就会有问题,因为实际上抓到到时空格+8,这样在用md创建文件夹的时候,因为T中有空格,会创建2个文件夹:

比如现在时间是2019-08-23, 08:30:30;

T = 20190823- 83030

md %T%会创建2个文件夹:20190823-和83030这样2个文件夹。

解决办法:

把小时单独定义h,然后把h中空格用0代替,再把h加入到T中:

set h=% =0% -> 这里的‘='就是‘替换'的含意

pushd E:\Test set h=%time~0,2% set h=% =0% set T=%date:~0,10%-%h%%time:~3,2%%time:~6,2% md %T% popd

到此这篇关于BAT获取时间有空格问题的解决方法的文章就介绍到这了,更多相关BAT时间空格问题内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!