1

我想让一个 bat 文件在一个目录中找到一个特定的文件,并让它更新时间戳为当前和/或与激活 bat 文件的时间同步。

4

3 回答 3

4

您不需要使用“touch.exe”来完成此操作。像这样的简单脚本将证明这一点:

@echo off

ECHO Test1:
SET FILENAME=test.xml
copy /b %FILENAME% +,,
dir %FILENAME%

timeout 64

ECHO Test2:
copy /b %FILENAME%,,+
dir %FILENAME%

pause

这证明有两种不同的方式可以做到这一点,语法上。

于 2013-06-28T22:29:46.893 回答
2

你可以使用触摸(已经在 J​​ubjub Bandersnatch 的评论中建议):

modification time所有 TXT 文件更改为现在:

touch -m *.txt

用法:触摸 [OPTION]... 文件...
将每个 FILE 的访问和修改时间更新为当前时间。

  -a 只改变访问时间
  -c 不创建任何文件
  -d, --date=STRING 解析 STRING 并使用它而不是当前时间
  -f(忽略)
  -m 只改变修改时间
  -r, --reference=FILE 使用这个文件的时间而不是当前时间
  -t STAMP 使用 MMDDhhmm[[CC]YY][.ss] 而不是当前时间
      --time=WORD 访问-a,atime -a,mtime -m,修改-m,使用-a
      --help 显示此帮助并退出
      --version 输出版本信息并退出

如果不使用 -drt 或 --,则 STAMP 可以不使用 -t。
于 2013-06-28T13:52:02.593 回答
-1

我最终使用:

copy Certain.config,,+
TIMEOUT 2
net stop Certain_Services
TIMEOUT 1
net start Certain_Services

它将更新修改日期,停止并重新启动服务。

于 2013-07-03T20:07:36.197 回答