我想在文件名中添加日期和时间值,然后我想将该文件移动到文件夹附近.
这里我使用以下命令来捕获日期和时间:
set dt=%date:~7,2%-%date:~4,2%-%date:~10,4%_%time:~,8%
echo %dt%
Run Code Online (Sandbox Code Playgroud)
然后我使用copy命令如下:
copy result_accnum.txt C:\ramki_windows\batch_practise\Query_stored\result_accnum_%dt%.txt
Run Code Online (Sandbox Code Playgroud)
但没什么用.我收到错误,因为"文件名,目录名或卷标语法不正确.".
lur*_*ker 14
:
文件名中不允许冒号().它保留用于在DOS路径名中分隔驱动器号等.您可以使用下划线(_
)代替:
set dt=%date:~7,2%-%date:~4,2%-%date:~10,4%_%time:~0,2%_%time:~3,2%_%time:~6,2%
Run Code Online (Sandbox Code Playgroud)
请注意,上午10点之前没有前导零.如果这对您的文件名格式很重要,那么可以按如下方式完成:
set hh=%time:~0,2%
if "%time:~0,1%"==" " set hh=0%hh:~1,1%
set dt=%date:~7,2%-%date:~4,2%-%date:~10,4%_%hh%_%time:~3,2%_%time:~6,2%
Run Code Online (Sandbox Code Playgroud)
小智 5
FOR /f "tokens=1-8 delims=:./ " %%G IN ("%date%_%time%") DO (
SET datetime=%%G%%H%%I_%%J_%%K
)
Run Code Online (Sandbox Code Playgroud)
这会将其计算为date_hour_min_sec并将其存储在称为datetime的变量中。例如
24042015_19_10_12
Run Code Online (Sandbox Code Playgroud)
如果您知道如何在DOS中执行此操作,则可以直接在文件名后附加此datetime变量(简单的:
set filename= sampletextfor_%datetime%.txt
将为您提供sampletextfor_24042015_19_10_12.txt
文件或其他文件)。
for命令通过%date %%time%组成的字符串。%date%% time%为您提供cmd(系统变量)中的日期时间值。标记指定您要基于定界符选择的元素。分隔符指定要考虑的新元素,例如/:。在这里 也是“”(空格)是一个定界符(您可以看到我在/之后留下了一个)
希望对您有所帮助!:)
归档时间: |
|
查看次数: |
87356 次 |
最近记录: |