所以基本上我有一个文件系统C:\ Test \ BaseLine。在BaseLine文件夹下,我有很多文件夹,它可能是一个文件夹或15个文件夹,在这些文件夹中是图像文件。我想将所有文件夹(不包括BaseLine文件夹)中的所有图像从INSIDE复制到另一个位置,即C:\ Test \ Achieve Images,每个图像的末尾带有日期戳的日期为03-07-2014。
例如,我将拥有这样的文件夹系统:
BaseLine-1.jpg,2.jpg-
> [文件夹123]-3.jpg,4.jpg-
> [文件夹321]-5.jpg,6.jpg
在脚本的结尾,我应该让C:\ Test \ Achieve图像具有如下图像:
达到图像-3_03-07-2014.jpg,4_03-07-2014.jpg,5_03-07-2014.jpg, 6_03-07-2014.jpg
请注意,它不包含任何BaseLine主文件夹图像。
到目前为止,我有一个像这样的脚本:
cd /d "C:\Test\BaseLine\" @SET DATE_FOLDER=%date:~7,2%-%date:~4,2%-%date:~10,4% SET "ACHIEVE_DIR=C:\Test\Master Achieve" for /d %%a in ("*") do xcopy "%%a\*.*" "%ACHIEVE_DIR%\" /s/h/e/k/f/c/y
PS:这段代码是在[user] foxidrive的帮助下进行的。再次感谢哥们我遇到的另一个问题!
此方法有效,但不会将时间戳附加到每个图像文件的末尾。谢谢!
您不能这样做,xcopy
但是正如注释中所概述的那样,这会在复制之前重命名文件。
此代码的前四行将为您提供XP Pro及更高版本中可靠的YY DD MM YYYY HH Min Sec变量。
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & 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 "DATE_FOLDER=%YYYY%%MM%%DD%"
cd /d "C:\Test\BaseLine\"
SET "ACHIEVE_DIR=C:\Test\Master Achieve"
md "%ACHIEVE_DIR%" 2>nul
for /d %%a in (*) do (
for /r %%b in ("%%a\*.jpg") do ren "%%~b" "%%~nb - %DATE_FOLDER%%%~xb"
xcopy "%%a\*.jpg" "%ACHIEVE_DIR%\" /s/h/e/k/f/c/y
)
pause
编辑代码以将所有*-tasty.jpg
文件移动到上,%ACHIEVE_DIR%
并给它们加上日期戳,然后删除包含C:\Test\BaseLine\
所有剩余文件的原始包含文件夹,但保持文件C:\Test\BaseLine\
原样。
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & 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 "DATE_FOLDER=%YYYY%%MM%%DD%"
cd /d "C:\Test\BaseLine\"
SET "ACHIEVE_DIR=C:\Test\Master Achieve"
md "%ACHIEVE_DIR%" 2>nul
for /d %%a in (*) do (
for /r %%b in ("%%a\*-tasty.jpg") do move "%%~b" "%ACHIEVE_DIR%\%%~nb - %DATE_FOLDER%%%~xb"
rd /s /q "%%a"
)
pause
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句