2年前,我编写了一个批处理文件,该文件似乎非常有用,每天可以制作一个excel电子表格的备份副本。突然,第一天它停止正常工作,开始按字面值分配变量,而不是拉出实际日期,因此它每天都开始覆盖自身。
我从获得此文件名开始: 美味时间表2018-04-30-2018
现在获取此文件名: 2018年美味时间表-〜4,2-〜6,2-〜0,4
看一下代码,这些值的来源似乎很明显,但是我不确定为什么不再拉日期。我假设必须要进行某种类型的系统更新才能更改此内容?解决此问题的最佳方法是什么?请在下面查看我当前的代码:
@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a
set YYYY=%dt:~0,4%
set MM=%dt:~4,2%
set DD=%dt:~6,2%
set HH=%dt:~8,2%
set Min=%dt:~10,2%
set Sec=%dt:~12,2%
set stamp=%MM%-%DD%-%YYYY%
copy "J:\TROY C\2018 Schedule\Tasty Schedule 2018.xlsx" "J:\Joe's Folder\ChocScheduleBackUps\Tasty Schedule 2018 - %stamp%.xlsx"
答案 0 :(得分:1)
在命令提示符下启动以下命令:
wmic OS Get localdatetime
这应该显示日期,您可以从那里开始。
验证您的语言环境设置:提到的WMIC
命令取决于语言环境。
为了使WMIC
工作,在命令提示符下运行set PATH
时,需要查看以下内容:
C:\Program Files\7-Zip>set PATH
Path=...;C:\WINDOWS\System32\Wbem;...
(请勿修改C:\Windows
目录,您的计算机将无法再使用)
答案 1 :(得分:1)
我通过在路径中添加“ C:\ Windows \ System32 \ wbem \”来解决我的问题,以便WMIC可以正常工作,并且还在路径中添加了“ C:\ Windows \ System32 \”以使FIND可以工作。
答案 2 :(得分:0)
以下是使用RoboCopy
的示例:
@Echo Off
Set "dStamp="
For /F "Tokens=1-3 Delims=/ " %%A In ('RoboCopy/NJH /L "\|" Null') Do If Not Defined dStamp Set "dStamp=%%B-%%C-%%A"
If Defined dStamp Copy "J:\TROY C\2018 Schedule\Tasty Schedule 2018.xlsx" "J:\Joe's Folder\ChocScheduleBackUps\Tasty Schedule 2018 - %dStamp%.xlsx"