首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环遍历批处理文件中的文件夹,并将文件夹名称转换为日期并检查最老日期。

循环遍历批处理文件中的文件夹,并将文件夹名称转换为日期并检查最老日期。
EN

Stack Overflow用户
提问于 2014-04-11 18:20:48
回答 2查看 190关注 0票数 0

我试着做一些事情,可能只是为了你,但我不知道怎么做。我有一个文件夹(比如D:\Backup),我每天使用机器人拷贝放置备份。备份文件夹中有几个子文件夹以MM-DD-YYYY格式命名(即02-21-2014、02-22-2014等)。我想循环这些文件夹并找到最老的日期,然后将它重命名为今天的日期,并使用新命名的文件夹作为我的机器复制备份批处理文件。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-11 19:46:12

试试这个:

代码语言:javascript
复制
@echo off&cls

set SearchFolder="D:\Backup"

::FOR NT
rem for /f "tokens=1-3 delims=/" %%a in ('echo %date%') do set "$today=%%a-%%b-%%c"
::FOR XP
for /f "tokens=1-3 delims=/" %%a in ('echo %date:~4%') do set "$today=%%a-%%b-%%c"

setlocal EnableDelayedExpansion
pushd %SearchFolder%
for /f "tokens=1-3 delims=-" %%a in ('dir/b/ad') do (
set "#%%c%%a%%b=%%a-%%b-%%c"
)
for /f "tokens=2 delims==" %%a in ('set #') do (
set "$older=%%a"
goto:next)

:next
::Renaming the oldest folder
echo Oldest Folder = [!$older!]
echo Today Folder  = [%$today%]
ren !$older! %$today%

::Here your robocopy command. The today's date is in %$today%

然后,您可以在机器人复制命令中使用%$ You %。

票数 0
EN

Stack Overflow用户

发布于 2019-04-09 15:03:21

代码语言:javascript
复制
@echo off

Echo ********************************************************
echo    Autor:  
echo    Datum: %date% um %time%
echo    Zweck: 
echo    Vers.: 
Echo ********************************************************


Echo ******************************************************** >> D:\Backups\LOGS\Logifle_%date%.log
echo    Autor:                        >> D:\Backups\LOGS\Logifle_%date%.log
echo    Datum: %date% um %time%                   >> D:\Backups\LOGS\Logifle_%date%.log 
echo    Zweck: Backup von Ordnern                 >> D:\Backups\LOGS\Logifle_%date%.log 
echo    Vers.: 1.0                        >> D:\Backups\LOGS\Logifle_%date%.log
Echo ******************************************************** >> D:\Backups\LOGS\Logifle_%date%.log

pause

echo Um das Backup zu starten bitte beliebige Taste druecken...

pause >nul

robocopy D:\Austausch D:\Backups\Files /e /m /a-:SH /LOG+:D:\Backups\LOGS\Logifle_%date%.log

echo Das Backup wurde erfolgreich abgeschlossen! Mit beliebiger Taste fortfahren.

pause>nul

echo Um das Logfile auszudrucken, geben Sie bitte folgendes Wort ein: "Print" Ansonsten können Sie das Programm mit exit beenden.

set /p Print=

IF %Print% == Print (
    echo Drucker wird gestartet
    print /d:\\Servername\Druckername D:\Backup\LOG\Logdatei_%date%.log
    pause >nul
    Sie können das Programm nun mit einer beliebigen Taste beenden.

) else (
pause )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23019927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档