【问题标题】:Automatic date stamp backup bat file changes stamp by itself after second loop自动日期戳备份 bat 文件在第二次循环后自行更改戳记
【发布时间】:2014-07-15 17:21:51
【问题描述】:

所以我一直在尝试为文件夹及其内容制作一个自动备份和日期戳 bat 程序。第一次循环时,它完全符合我的要求。但是第二次循环运行时,它通过删除前 3 个数字和 2014 年的 0 来更改文件夹。 看起来像这样。

第一个循环 C:\users\username\desktop\05.26.2014\17.11\contents(这是对的)

第二个循环 C:\user\username\desktop\6.2.14\17\contents

第三次循环 C:\users\username\desktop\2.1\no time folder\contents

日期文件夹中有一个时间子文件夹,它也受此影响,直到不再生成。 谁能告诉这是什么原因,这是我在bat文件中的内容

@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

这似乎已经解决了。

【问题讨论】:

    标签: batch-file windows-7 backup datestamp


    【解决方案1】:

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

    ""26"."05"."2014""
    

    那么,下次"%date:~-4,4%"会给你"14"""

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

    【讨论】:

      猜你喜欢
      • 2018-03-15
      • 2020-02-20
      • 1970-01-01
      • 2011-08-10
      • 2016-05-04
      • 2021-10-17
      • 2023-01-31
      • 2021-03-01
      • 1970-01-01
      相关资源
      最近更新 更多