将日期/时间/旧位置添加到文件名批处理

时间:2014-03-10 15:00:17

标签: batch-file path copy

我有以下代码:

@echo off
setlocal disableDelayedExpansion

set "src=C:\test"
set "dst=C:\test2"
set "search=test"

for /r "%src%" %%F in (*%search%*) do (
set "full=%%~fF"
set "name=%%~nxF"
setlocal enableDelayedExpansion
copy "!full!" "%dst%\!name:%search%=test - %date:~0,2%-%date:~3,2%-%date:~6,4%__%time:~0,2%-%time:~3,2%-%time:~6,2%!"
endlocal
)

此代码的作用是从1个位置复制文件并将其放在其他位置并更改名称并将日期/时间放在文件名中。

我正在寻找的是文件名和时间背后也是复制文件的位置。所以像这样:

文件名-10-03-2014-15:58:45-C:\测试\ TEST1 \ TESTFILE.TXT

所以我可以在文件名中看到日期时间和旧路径。

希望你们能帮忙。

亲切的问候,

Kaluh

1 个答案:

答案 0 :(得分:1)

@echo off
setlocal disableDelayedExpansion

set "src=C:\sourcedir"
set "dst=C:\destdir"
set "search=jpg"

for /r "%src%" %%F in (*%search%*) do (
 set "full=%%~fF"
 set "name=%%~nxF"
 setlocal ENABLEDELAYEDEXPANSION
 SET "appendix=!full::=-!"
 SET "appendix=!appendix:\=_!"
 ECHO copy "!full!" "%dst%\!name:%search%=test - %date:~0,2%-%date:~3,2%-%date:~6,4%__%time:~0,2%-%time:~3,2%-%time:~6,2%!-!appendix!"
 endlocal
)

GOTO :EOF

我更改了搜索模式,源和目标目录以适合我的系统。

您需要为:\指定自己的替代字符,这些字符不能出现在文件名中。

为了测试目的,所需的COPY命令仅为ECHO在您确认命令正确后,将ECHO COPY更改为COPY以实际复制文件。