【问题标题】:Automation with a Batch File使用批处理文件进行自动化
【发布时间】:2016-06-18 14:50:42
【问题描述】:

有一个报告要去一个需要一个文件夹的位置,否则报告将失败。所以我创建了一堆文件夹,使用批处理文件一次将它们放在那里一年。那个批处理文件非常简单。

@echo off

md C:\Users\Joseph\Desktop\TestFolder\2016
md C:\Users\Joseph\Desktop\TestFolder\2016\01-Jan
md C:\Users\Joseph\Desktop\TestFolder\2016\02-Feb
md C:\Users\Joseph\Desktop\TestFolder\2016\03-Mar
md C:\Users\Joseph\Desktop\TestFolder\2016\04-Apr
md C:\Users\Joseph\Desktop\TestFolder\2016\05-May
md C:\Users\Joseph\Desktop\TestFolder\2016\06-Jun
md C:\Users\Joseph\Desktop\TestFolder\2016\07-Jul
md C:\Users\Joseph\Desktop\TestFolder\2016\08-Aug
md C:\Users\Joseph\Desktop\TestFolder\2016\09-Sep
md C:\Users\Joseph\Desktop\TestFolder\2016\10-Oct
md C:\Users\Joseph\Desktop\TestFolder\2016\11-Nov
md C:\Users\Joseph\Desktop\TestFolder\2016\12-Dec

此解决方案被否决,因为他们不希望该位置有一堆空文件夹。所以我隐藏了所有空的文件夹,也被击落,他们删除了我所有的文件夹。现在它是一个手动过程,有人必须在 CST 每月最后一天晚上 9:00 记住创建下个月的文件夹。所以我可以写一个这样的批处理文件。

@echo off

md C:\Users\Joseph\Desktop\TestFolder
md C:\Users\Joseph\Desktop\TestFolder\2016\01-Jan

并使其成为计划任务,然后我只需每月更改批处理文件,这会更好一些,但它并不是真正自动化的。

有没有一种方法可以让批处理文件查看 2016 文件夹并查看其中已经存在哪些月份,然后让它在下个月添加,除非它是 12 月 12 日,在这种情况下我希望它创建下一年的文件夹并用 01-Jan 填充它?

【问题讨论】:

    标签: batch-file automation scheduled-tasks


    【解决方案1】:
    @ECHO OFF
    SETLOCAL
    SET "destdir=U:\destdir"
    SET /a year=2015
    :dloop
    SET /a year+=1
    FOR %%a IN (01-Jan 02-Feb 03-Mar 04-Apr) DO IF NOT EXIST "%destdir%\%year%\%%a\." MD "%destdir%\%year%\%%a"&GOTO :EOF 
    GOTO dloop
    

    您需要更改destdir 的设置以适应您的情况。

    我只使用 Jan..Apr 进行测试。显然,您需要完成对12-Dec的设置

    只查找第一个不存在的目录;创建它并退出。如果您遍历所有月份并且它们都存在,请增加年份并重试。

    或者 - 我的偏好 - 让那些机械地拒绝提议的解决方案的人提出他们自己的方案。

    【讨论】:

    • 这就像一个魅力。我需要深入研究它,以便确保了解它的工作原理,但非常感谢您,这应该使我们能够完全自动化这个平凡的任务。我完全同意你的偏好,因为那些一直击落我的人并没有提出任何解决方案。我能够设想一个解决方案,但现在感谢您对语法的帮助,我将能够使其成为现实。我确实点击了对此的赞成票,但它说我还不够酷,无法显示数字。
    猜你喜欢
    • 1970-01-01
    • 2018-11-12
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    相关资源
    最近更新 更多