BATCH 文件:每年以特殊格式归档文件
Posted
技术标签:
【中文标题】BATCH 文件:每年以特殊格式归档文件【英文标题】:BATCH File : archive Files per Year with special format 【发布时间】:2015-02-04 08:54:53 【问题描述】:我有一个文件夹,里面有特定格式的文件 (321456.done24),我想每年用批处理日期归档这些文件...这意味着在这个文件夹中创建另一个文件夹,如果没有的话存在,并且过去几年的所有文件 - 除了当前年份 - 将它们移到那里。 我找到并尝试修改的示例:`
@echo off
setlocal enabledelayedexpansion
set FolderIncoming=C:\Temp
set FileMask= *.done24
set FolderSorted=C:\Temp
for %%a in ("%FolderIncoming%\%FileMask%") do (
set FileName=%%~na
echo Processing '!FileName!' ...
set TargetFolder=!FileName:~5,8!
if not exist "%FolderSorted%\!TargetFolder!" ECHO md "%FolderSorted%\!TargetFolder!"
ECHO move "%%a" "%FolderSorted%\!TargetFolder!"
)
`
但不知道如何创建带有年份的文件夹?
【问题讨论】:
【参考方案1】:只需对代码进行必要的更改即可:sn-p:
@ECHO OFF >NUL
@SETLOCAL enableextensions enabledelayedexpansion
set "FolderIncoming=D:\Temp"
set "FileMask=*.done24"
set "FolderSorted=D:\Temp"
pushd "%FolderIncoming%"
for %%a in ("%FolderIncoming%\%FileMask%") do (
set "FileName=%%~na"
echo Processing '!FileName!' ... %%a ... %%~ta
rem next tokens and delims valid for 'dd.mm.yyyy HH:mm:ss' datetime format
for /F "tokens=3 delims=. " %%G in ("%%~ta") do set "fileyear=%%G"
echo md "%FolderSorted%\!fileyear!" 2>nul
set "TargetFolder=!FileName:~5,8!"
if not exist "%FolderSorted%\!TargetFolder!" ECHO md "%FolderSorted%\!TargetFolder!"
ECHO move "%%a" "%FolderSorted%\!TargetFolder!"
)
popd
:: some code here
@ENDLOCAL
@goto :eof
【讨论】:
以上是关于BATCH 文件:每年以特殊格式归档文件的主要内容,如果未能解决你的问题,请参考以下文章