Jde*_*eBP 19
有几种可能:
使用 Unixtouch命令的端口,find并touch以 Unix 方式简单地组合和。有几种选择。经常提到的是GNUWin32、cygwin和unxutils。不太为人所知,但在某些方面更好的是SFUA 实用工具包中的工具,它们在基于 UNIX 的应用程序子系统中运行,该子系统随 Windows 7 Ultimate 版和 Windows Server 2008 R2 一起提供。(对于 Windows XP,可以下载并安装UNIX 版本 3.5 的服务。)这个工具包有大量的命令行 TUI 工具,从mv和du,通过 Korn 和 C shell,到perl和awk。它有 x86-64 和 IA64 版本以及 x86-32 版本。这些程序在 Windows 的原生适当 POSIX 环境中运行,而不是使用模拟器 DLL(例如cygwin1.dll)在 Win32 上分层。是的,该工具包有touch和find,以及其他大约 300 个。
当然,所有这些工具包都有一个众所周知的缺点,即为每个要访问的文件运行一个单独的进程。这不是以下替代方案的问题。
使用touch人们编写和发布的众多本机 Win32命令之一。 它们中的许多支持执行递归的选项,而无需 Unixfind来包装它们。(毕竟,他们的目标是寻找touch命令的用户群,因为它没有大量移植的 Unix 命令。)其中之一是Stéphane Duguaytouch,正如您所见,它有一个--recursive选项。
巧妙地了解 CMD 的奥秘。 如另一个答案中所述,COPY /B myfile+,,将使用鲜为人知的COPY命令的“加号”语法更新文件的上次修改日期戳(顺便说一下,可以在此处找到更多相关信息)。这当然可以与FOR /R递归执行操作相结合,正如此处的另一个答案所暗示的那样。
使用替代的命令解释器,不如 CMD 聪明和直接。 JP Software 的 TCC/LE就是其中之一。它为其命令添加了一个/S选项,这意味着可以使用“加号”语法来消除对包装器的需要。但考虑到 TCC/LE 有一个直接支持选项的内置 TOUCH 命令,这确实让自己的生活变得不必要地困难。COPYCOPY /SFOR/S
小智 7
要仅使用现有的 Windows 功能(无需额外安装),请尝试以下方法之一:
forfiles /P C:\Path\To\Root /S /C "cmd /c Copy /B @path+,,"
Run Code Online (Sandbox Code Playgroud)
(递归地“触摸”从指定路径开始的所有文件)
或者
forfiles /S /C "cmd /c Copy /B @path+,,"
Run Code Online (Sandbox Code Playgroud)
(递归地“触摸”从当前目录开始的所有文件)
| 归档时间: |
|
| 查看次数: |
36704 次 |
| 最近记录: |