如何根据当前日期创建一个子文件夹? [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何根据当前日期创建一个子文件夹? [重复]相关的知识,希望对你有一定的参考价值。

我想使用命令将文件夹(包括子文件夹)的全部内容复制到其他驱动器。

例如:

robocopy c:\evernote\ e:\evernote\<datestamp>\

其中<datestamp>是一个新文件夹,其名称代表此格式的当前日期:

2018_05_21

因此,目标“evernote”文件夹将包含一系列子文件夹,每个日期一个文件夹。每个子文件夹将包含在该日期从源复制到目标的文件。

对我来说,如果命令是复制,robocopy,xcopy或其他什么,我认为这不重要。但是,我相信robocopy是最新的,因此最有可能将来对我有用。

顺便说一句:为了保持这一点,不需要允许不同的时区,也不需要“自动化” - 我将自己运行BAT文件,并在以后添加自动化。

谢谢。

答案

因为您正在使用RoboCopy并且很乐意使用@Echo Off Set "sd=C:\EverNote" Set "dd=E:\EverNote" Set "ds=" If Not Exist "%sd%\" Exit /B For /F "Tokens=1-3Delims=/ " %%A In ('RoboCopy/NJH /L "\|" Null' ) Do If Not Defined ds Set "ds=%%A_%%B_%%C" If Not Defined ds Exit /B RoboCopy "%sd%" "%dd%\%ds%" /E 进行复制过程,所以这里有一个方法也用它来确定日期:

2

您可以在行3%date%中编辑位置(但不要删除现有的双引号或引入您自己的引号,并且不要包含带有这些文件夹名称的尾部反斜杠)

另一答案

在Batch中编写时,您应该能够访问环境变量echo %date%

这是当前日期的字符串。

您可以尝试使用%date%查看它的外观,然后拆分并重新组合字符串,以满足您的需求。

请注意,字符串的格式取决于您在计算机上设置日期时间设置的方式。如果您更改为在计算机上使用其他格式,@echo off for /f %%# in ('wMIC Path Win32_LocalTime Get /Format:value') do @for /f %%@ in ("%%#") do @set %%@ :echo %day% :echo %DayOfWeek% :echo %hour% :echo %minute% :echo %month% :echo %quarter% :echo %second% :echo %weekinmonth% :echo %year% if %day% lss 10 set day=0%day% if %month% lss 10 set month=0%month% set f_date=%year%-%month%-%day% echo %f_date% 的格式也将更改。

另一答案

要以特定格式生成日期而不必担心本地化设置,您可以使用:

this

%date%变量格式取决于控制面板中的设置,并且它的值在不同的计算机上会有所不同。有关获取格式化日期的更多方法,您可以查看@Echo off for /f "usebackqdelims=" %%D in ( `powershell -Nop -C "(Get-Date).ToString('yyyy_MM_dd')"` ) Do Set "datestamp=%%D" Echo robocopy c:\evernote\ e:\evernote\%datestamp%\

另一答案

此脚本使用PowerShell以所需格式获取时间戳

robocopy c:\evernote\ e:\evernote\2018_06_02\

样本输出:

qazxswpoi

以上是关于如何根据当前日期创建一个子文件夹? [重复]的主要内容,如果未能解决你的问题,请参考以下文章

请教批处理大虾,如何将一堆不同时期拍摄的照片按修改日期自动创建文件夹进行归档?

实验一 进程管理

创建一个子游戏对象的副本,并在删除父游戏对象时它仍然存在

REQUIRES_NEW 如果不在一个事务那么自己创建一个事务 如果在一个事务中 自己在这个大事务里面在创建一个子事务 相当于嵌套事务 双层循环那种

《Unix&Linux大学教程》学习笔记七:进程与作业控制

Swift 的 Obj-c 代码 - NSDateFormatter [重复]