2016-03-04 6 views
0

Существует сообщение, отправляемое в папку, где требуется папка, которая будет там, или отчет не будет выполнен. Поэтому я создал кучу папок, чтобы иметь их там в течение года за один раз, используя командный файл. Этот командный файл чрезвычайно прост.Автоматизация с пакетным файлом

@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 

Это решение было сбит, потому что они не хотят, чтобы в этом месте была пустая папка. Поэтому я спрятал все папки, которые были пустыми, и это тоже сбито, и они удалили все мои папки. Теперь это ручной процесс, который кто-то должен запомнить в 9:00 вечера КНТ в последний день месяца, чтобы создать папку на следующий месяц. Поэтому я мог бы написать пакетный файл, подобный этому.

@echo off 

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

и сделать это запланированное задание, а затем я просто изменить пакетный файл каждый месяц, который немного лучше, но это на самом деле не автоматизирован.

Есть ли способ, которым пакетный файл можно посмотреть в папке 2016 и посмотреть, какие месяцы уже существуют в нем, а затем добавить следующий месяц, если это не 12-Dec, и в этом случае я бы хотел, чтобы он создать папку на следующий год и заполнить ее 01 января?

ответ

0
@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

Просто найдите первый каталог, который не существует; создать его и выйти. Если вы пройдете через все месяцы, и все они существуют, увеличьте год и повторите попытку.

Или - мои предпочтения - пусть те, кто механически запрещают предлагаемые решения, придумывают свою схему.

+0

Это работает как шарм. Мне нужно будет копаться в этом, чтобы я мог убедиться, что он работает, но спасибо вам большое, это должно позволить нам полностью автоматизировать эту обыденную задачу из существования. Я полностью согласен с вашими предпочтениями, потому что люди, которые стреляли в меня, не предлагали никаких решений. Я смог представить себе решение, но теперь благодаря вашей помощи синтаксису я смогу сделать его реальностью. Я нажал на голосование по этому вопросу, но сказал, что я недостаточно крут, чтобы показать номер. –

Смежные вопросы