Batch file 使用时间戳批处理脚本移动文件
所以基本上我有一个文件系统C:\Test\BaseLine。在基线文件夹下,我有许多文件夹,可以是一个文件夹或15个文件夹,这些文件夹中有图像文件。我想将这些文件夹(不包括基线文件夹)中的所有图像复制到另一个位置,即C:\Test\Acrease图像,每个图像末尾的日期戳为03-07-2014 例如,我的文件夹系统如下:Batch file 使用时间戳批处理脚本移动文件,batch-file,scripting,move,Batch File,Scripting,Move,所以基本上我有一个文件系统C:\Test\BaseLine。在基线文件夹下,我有许多文件夹,可以是一个文件夹或15个文件夹,这些文件夹中有图像文件。我想将这些文件夹(不包括基线文件夹)中的所有图像复制到另一个位置,即C:\Test\Acrease图像,每个图像末尾的日期戳为03-07-2014 例如,我的文件夹系统如下: 基线-1.jpg,2.jpg ->[文件夹123]-3.jpg,4.jpg ->[文件夹321]-5.jpg,6.jpg 在我的脚本结束时,我应该有我的C:\Test\acre
基线-1.jpg,2.jpg
->[文件夹123]-3.jpg,4.jpg
->[文件夹321]-5.jpg,6.jpg
在我的脚本结束时,我应该有我的C:\Test\acrease图像,这些图像如下:
实现图像-3_03-07-2014.jpg、4_03-07-2014.jpg、5_03-07-2014.jpg、6_03-07-2014.jpg 请注意它如何不包括任何基线主文件夹图像 到目前为止,我有这样一个脚本:
cd/d“C:\Test\BaseLine\”
@设置日期\u文件夹=%DATE:~7,2%-%DATE:~4,2%-%DATE:~10,4%
设置“实现\u DIR=C:\Test\Master实现”
对于(“*”)中的/d%%a,请执行xcopy“%%a\*.'%Acquire\U 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
编辑code将所有*-tasty.jpg
文件移动到%Achide\u 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
这项工程—
@echo off
for /f "skip=1 delims=." %%i in ('wmic OS Get localdatetime') do set ts=%%i
set dt=%ts:~6,2%-%ts:~4,2%-%ts:~0,4%
set workdir=D:\test\baseline\
set newdir=D:\test\Achieve\
cd %workdir%
for /f "delims=" %%i in ('dir /b /s *.jpg') do call :search "%%i"
goto :eof
:search
set filepath=%~f1
set dirpath=%~dp1
set filename=%~n1
set fileextn=%~x1
if "%dirpath%" EQU "%workdir%" goto :eof
copy /y "%filepath%" %newdir%\%filename%_%dt%%fileextn% >nul 2>&1
:eof
测试输出-
D:\>dir "d:\test\baseline", "d:\test\baseline\Folder 123", "d:\test\baseline\Folder 321"
Volume in drive D is New Volume
Volume Serial Number is B04C-AB59
Directory of d:\test\baseline
23/07/2014 21:24 <DIR> .
23/07/2014 21:24 <DIR> ..
23/07/2014 20:35 2 1.jpg
23/07/2014 20:35 2 2.jpg
23/07/2014 20:36 <DIR> Folder 123
23/07/2014 20:37 <DIR> Folder 321
2 File(s) 4 bytes
Directory of d:\test\baseline\Folder 123
23/07/2014 20:36 <DIR> .
23/07/2014 20:36 <DIR> ..
23/07/2014 20:36 2 3.jpg
23/07/2014 20:36 2 4.jpg
2 File(s) 4 bytes
Directory of d:\test\baseline\Folder 321
23/07/2014 20:37 <DIR> .
23/07/2014 20:37 <DIR> ..
23/07/2014 20:37 2 5.jpg
23/07/2014 20:37 2 6.jpg
2 File(s) 4 bytes
2 Dir(s) 7,037,329,408 bytes free
D:\>draft.bat
D:\test\baseline>cd\
D:\>dir d:\test\Achieve
Volume in drive D is New Volume
Volume Serial Number is B04C-AB59
Directory of d:\test\Achieve
23/07/2014 21:24 <DIR> .
23/07/2014 21:24 <DIR> ..
23/07/2014 20:36 2 3_23-07-2014.jpg
23/07/2014 20:36 2 4_23-07-2014.jpg
23/07/2014 20:37 2 5_23-07-2014.jpg
23/07/2014 20:37 2 6_23-07-2014.jpg
4 File(s) 8 bytes
2 Dir(s) 7,037,329,408 bytes free
D:\>dir“D:\test\baseline”、“D:\test\baseline\Folder 123”、“D:\test\baseline\Folder 321”
驱动器D中的卷是新卷
卷序列号为B04C-AB59
d:\test\baseline的目录
23/07/2014 21:24 .
23/07/2014 21:24 ..
2014年7月23日20:35 2 1.jpg
2014年7月23日20:35 2.jpg
2014年7月23日20:36文件夹123
2014年7月23日20:37文件夹321
2个文件4个字节
d:\test\baseline\Folder 123的目录
23/07/2014 20:36 .
23/07/2014 20:36 ..
2014年7月23日20:36 23.jpg
2014年7月23日20:36 2 4.jpg
2个文件4个字节
d:\test\baseline\文件夹321的目录
23/07/2014 20:37 .
23/07/2014 20:37 ..
2014年7月23日20:37 2 5.jpg
2014年7月23日20:37 2 6.jpg
2个文件4个字节
2个目录7037329408可用字节
D:\>draft.bat
D:\test\baseline>cd\
D:\>目录D:\test\reach
驱动器D中的卷是新卷
卷序列号为B04C-AB59
d:\test\reach的目录
23/07/2014 21:24 .
23/07/2014 21:24 ..
2014年7月23日20:36 2 3_23-07-2014.jpg
2014年7月23日20:36 2 4_23-07-2014.jpg
2014年7月23日20:37 2 5_23-07-2014.jpg
2014年7月23日20:37 2 6_23-07-2014.jpg
4个文件8个字节
2个目录7037329408可用字节
干杯,
G
编辑-根据您的原始问题进行编辑。我还没有看到关于另一个答案的评论。如果您需要更改,请告诉我 在运行draft.bat之前
D:\>dir "d:\test\baseline", "d:\test\baseline\Folder 123", "d:\test\baseline\Folder 321"
Volume in drive D is New Volume
Volume Serial Number is B04C-AB59
Directory of d:\test\baseline
23/07/2014 21:24 <DIR> .
23/07/2014 21:24 <DIR> ..
23/07/2014 20:35 2 1.jpg
23/07/2014 20:35 2 2.jpg
23/07/2014 20:36 <DIR> Folder 123
23/07/2014 20:37 <DIR> Folder 321
2 File(s) 4 bytes
Directory of d:\test\baseline\Folder 123
23/07/2014 20:36 <DIR> .
23/07/2014 20:36 <DIR> ..
23/07/2014 20:36 2 3-tasty.jpg
23/07/2014 20:36 2 3-not tasty.jpg
23/07/2014 20:36 2 4-tasty.jpg
23/07/2014 20:36 2 4-not tasty.jpg
2 File(s) 4 bytes
Directory of d:\test\baseline\Folder 321
23/07/2014 20:37 <DIR> .
23/07/2014 20:37 <DIR> ..
23/07/2014 20:37 2 5-tasty.jpg
23/07/2014 20:37 2 5-not tasty.jpg
23/07/2014 20:37 2 6-tasty.jpg
23/07/2014 20:37 2 6-not tasty.jpg
2 File(s) 4 bytes
2 Dir(s) 7,037,329,408 bytes free
D:\>draft.bat
D:\>dir“D:\test\baseline”、“D:\test\baseline\Folder 123”、“D:\test\baseline\Folder 321”
驱动器D中的卷是新卷
卷序列号为B04C-AB59
d:\test\baseline的目录
23/07/2014 21:24 .
23/07/2014 21:24 ..
2014年7月23日20:35 2 1.jpg
2014年7月23日20:35 2.jpg
2014年7月23日20:36文件夹123
2014年7月23日20:37文件夹321
2个文件4个字节
d:\test\baseline\Folder 123的目录
23/07/2014 20:36 .
23/07/2014 20:36 ..
2014年7月23日20:36 2 3-tasty.jpg
2014年7月23日20:36 23-not tasty.jpg
2014年7月23日20:36 2 4-tasty.jpg
2014年7月23日20:36 2 4-不好吃。jpg
2个文件4个字节
d:\test\baseline\文件夹321的目录
23/07/2014 20:37 .
23/07/2014 20:37 ..
2014年7月23日20:37 2 5-tasty.jpg
2014年7月23日20:37 2 5-不好吃。jpg
2014年7月23日20:37 2 6-tasty.jpg
2014年7月23日20:37 2 6-不好吃。jpg
2个文件4个字节
2个目录7037329408可用字节
D:\>draft.bat
之后
D:\test\baseline>cd\
D:\>目录D:\test\reach
驱动器D中的卷是新卷
卷序列号为B04C-AB59
d:\test\reach的目录
23/07/2014 21:24 .
23/07/2014 21:24 ..
2014年7月23日20:36 2 3_23-07-2014.jpg
2014年7月23日20:36 2 4_23-07-2014.jpg
2014年7月23日20:37 2 5_23-07-2014.jpg
2014年7月23日20:37 2 6_23-07-2014.jpg
4个文件8个字节
2个目录7037329408可用字节
d:\test\baseline的目录
23/07/2014 21:24 .
23/07/2014 21:24 ..
2014年7月23日20:35 2 1.jpg
2014年7月23日20:35 2.jpg
2014年7月23日20:35 23.jpg
2014年7月23日20:35 2 4.jpg
2014年7月23日20:35 2 5.jpg
2014年7月23日20:35 2 6.jpg
2个文件4个字节
请注意,baseline
没有更多文件夹,因为它们在移动所有文件后都被删除了不好吃
->没有非TA的基线
D:\test\baseline>cd\
D:\>dir d:\test\Achieve
Volume in drive D is New Volume
Volume Serial Number is B04C-AB59
Directory of d:\test\Achieve
23/07/2014 21:24 <DIR> .
23/07/2014 21:24 <DIR> ..
23/07/2014 20:36 2 3_23-07-2014.jpg
23/07/2014 20:36 2 4_23-07-2014.jpg
23/07/2014 20:37 2 5_23-07-2014.jpg
23/07/2014 20:37 2 6_23-07-2014.jpg
4 File(s) 8 bytes
2 Dir(s) 7,037,329,408 bytes free
Directory of d:\test\baseline
23/07/2014 21:24 <DIR> .
23/07/2014 21:24 <DIR> ..
23/07/2014 20:35 2 1.jpg
23/07/2014 20:35 2 2.jpg
23/07/2014 20:35 2 3.jpg
23/07/2014 20:35 2 4.jpg
23/07/2014 20:35 2 5.jpg
23/07/2014 20:35 2 6.jpg
2 File(s) 4 bytes