在Windows命令行中更改时间变量的时间输出以在批处理文件中使用

糖尿病

目标:使用批处理文件将具有特定扩展名的子目录中的文件备份到另一个目录。

forfiles /P C:\Users\user\Desktop\testdest\ -D 3 /C "cmd /c IF @isdir == TRUE rd /S /Q @path" 
mkdir C:\Users\user\Desktop\testdest\%date%
FOR /R C:\Users\user\Desktop\testsrc\ %%A in (*.txt) do (
echo %%A
copy "%%A" "C:\Users\user\Desktop\testdest\%DATE%\%time:~0,2%_%time:~3,2%_%time:~6,2%_%time:~9,2%_%%~nxA
)

我尝试了多种方法来找到使文件名唯一的方法。不幸的是,子目录中的文件与其他子目录中的文件具有相同的名称,因此要使其在目标目录中唯一,它们需要使用前缀或后缀来使其唯一。尝试使用计数器变量,但无法弄清楚如何递增它。我最终尝试使用时间变量,但是在整个批处理文件运行中它似乎保持不变。

输出是这样的:

copy "C:\Users\user\Desktop\testsrc\sub\subsub\311.txt" "C:\Users\user\Desktop\testdest\01.02.2018\ 9_24_31_52_311.txt

copy "C:\Users\user\Desktop\testsrc\sub\subsub\312.txt" "C:\Users\user\Desktop\testdest\01.02.2018\ 9_24_31_52_312.txt

当有多个具有相同名称的文件时,时间输出保持不变,这是一个问题。

那么为什么时间输出没有改变毫秒呢?

恩波科马卡

尝试延迟扩展

setlocal enableDelayedExpansion
forfiles /P C:\Users\user\Desktop\testdest\ -D 3 /C "cmd /c IF @isdir == TRUE rd /S /Q @path" 
mkdir C:\Users\user\Desktop\testdest\%date%
FOR /R C:\Users\user\Desktop\testsrc\ %%A in (*.txt) do (
  echo %%A
  copy "%%A" "C:\Users\user\Desktop\testdest\%DATE%\!time:~0,2!_!time:~3,2!_!time:~6,2!_!time:~9,2!_%%~nxA
)

请注意,%time%在不同的计算机上可能会有所不同,因为它依赖于本地设置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Windows命令行中在批处理文件中使用参数

在Windows批处理文件中通过命令行ftp使用%USERNAME%环境变量

批处理文件:在命令行中使用Loop

更新批处理文件中的命令行参数

使用批处理文件通过命令行设置环境变量

如何将命令行参数传递给Windows批处理文件中的程序?

在命令行或批处理文件中创建带有日期和时间的文件名的最简单方法

可以在批处理文件中使用并加入长路径变量来调用带有较长变量作为命令行参数的EXE吗?如何?

批处理:检查批处理文件中的命令行参数

在Windows批处理命令行中使用MSBuild属性?

通过批处理文件从命令行输出中提取数字

如何在Windows命令行中的文件名和批处理脚本中使用日语字符?

字符串替换 *./*: 什么都不做,使用从命令行传递给批处理文件的变量

如何在Windows命令行或批处理文件中在字符串中搜索斜杠或冒号?

如何将Windows路径转换为文件:批处理文件中的URL,适合SVN命令行使用

如何串联批处理文件的命令行参数?

通过命令行(批处理文件)更改注册表权限

是否可以在Windows命令行中编写一个小的(5行-或更多)批处理文件?

命令在命令行上运行,但不在批处理文件中

使用批处理文件将Ping命令输出保存到变量中

在批处理文件中的文件路径中使用变量

喜欢在变量中获取Powershell脚本的输出以在批处理文件中使用

在Inno Setup中如何在不使用批处理文件的情况下执行命令行工具

批处理文件中的%*是否表示所有命令行参数?

批处理文件中的%*是否表示所有命令行参数?

循环/ D标志的批处理文件未出现在命令行中

如何使用命令行创建批处理文件?

如何使用批处理文件与命令行程序进行交互?

如何制作批处理文件以使用Flex命令行调试器?