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 文件:每年以特殊格式归档文件的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop 如何使用 Archives 实现归档

jar是啥意思,jar文件怎么打开

od 查看特殊格式的文件内容

JAVA jar 和 war 包的区别

jar文件可以在Mac OS上运行吗?

jar文件可以在Mac OS上运行吗?