首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动日期戳备份bat文件在第二次循环后自动更改邮票

自动日期戳备份bat文件在第二次循环后自动更改邮票
EN

Stack Overflow用户
提问于 2014-05-26 22:34:46
回答 1查看 260关注 0票数 0

因此,我一直试图为一个文件夹及其内容制作一个自动备份和日期标记bat程序。当它第一次循环时,它做的正是我想要它做的。但是第二次循环运行时,它会在2014年删除前3个数字和0,从而改变文件夹。它看起来像这样。

第一个循环C:\users\username\desktop\05.26.2014\17.11\contents(This是正确的)

第二个循环C:\user\username\桌面\6.2.14\17\目录

第三个循环C:\用户\用户名\桌面\2.1\没有时间文件夹\内容

日期文件夹中有一个时间子文件夹,它也受此影响,直到它不再生成为止。有人能说出是什么原因造成的吗?这里是我在bat文件中的内容。

代码语言:javascript
复制
@echo off
set /a x=0

:loop1



timeout /t 600

set day="%date:~-10,2%"
set month="%date:~-7,2%"
set year="%date:~-4,4%"
set hour="%time:~-11,2%"
set minute="%time:~-8,2%"

set time="%hour%.%minute%"

set date="%day%.%month%.%year%"

echo d | XCOPY Z:\copydirectory "G:\pastdirectory" /e

echo Loop number -^>%x%

set /a x=%x%+1

if %x% NEQ 10000 goto loop1

pause

感谢任何回答的人。

编辑:更改

变时间到T,变日期到D

好像已经修好了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-26 23:22:01

您不应该在"语句中使用set。这将使双引号进入实际结果。假设您的第一个值被正确解析,那么当您下一个构造date时,结果将是:

代码语言:javascript
复制
""26"."05"."2014""

然后,下一次"%date:~-4,4%"会给你"14"""

set语句中删除所有引号,然后重试。如果仍然存在问题,则可能需要查看延迟变量展开。查看setlocalendlocal命令。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23878530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档