2016-07-28 14 views
0

Ursprüngliche Frage: Ich versuche, Monat und Jahr Variablen Variablen für das Geschäftsjahr ab April bis März für 18 Monate zuweisen. Ich erwarte, dass die Charge sys Monat und Jahr auswählt und sie für 18 Monate zuweist. Die Monatsvariable sollte mit dem Monatswert bis 18 Monate steigen und der Jahresvariablewert sollte Ende März beginnen. Apr.Monat und Zeitraum den Variablen basierend auf sysdate zuweisen

+0

Bitte die ursprüngliche Frage zurückstellen. – lit

Antwort

0

Dies ist nicht zu schwer mit ein wenig Modulo Mathe und Indizierung in eine Liste von Monatsnamen Abkürzungen. Ich habe den Mechanismus verlassen, um CUR_MONTH und CUR_YEAR an dich zu bringen. Sie könnten% DATE% parsen, aber das wäre schlecht. Suchen Sie nach Möglichkeiten, den aktuellen Zeitstempel durch WMIC zu erhalten.

@echo off 
SETLOCAL ENABLEDELAYEDEXPANSION 

REM Use 0-based month index. 
REM Jan = 0, Feb = 1, ... 

FOR /F "usebackq skip=1" %%a IN (`type NUL ^|WMIC Path Win32_LocalTime Get Month ^| findstr .`) DO (SET /A "CUR_MONTH=%%a - 1") 
FOR /F "usebackq skip=1" %%a IN (`type NUL ^|WMIC Path Win32_LocalTime Get Year ^| findstr .`) DO (SET /A "CUR_YEAR=%%a") 

SET "MONTH_LIST=JanFebMarAprMayJunJulAugSepOctNovDec" 
SET /A "FISCAL_YEAR=%CUR_YEAR%" 

FOR /L %%i IN (0, 1, 17) DO (
    SET /A "MONTH_INDEX=(!CUR_MONTH! + %%i) %% 12" 
    SET /A "MONTH_OFFSET=!MONTH_INDEX! * 3" 

    SET /A "VAR_INDEX=%%i + 1" 
    CALL SET "MONTH!VAR_INDEX!=%%MONTH_LIST:~!MONTH_OFFSET!,3%%" 

    IF !MONTH_INDEX! EQU 3 (SET /A "FISCAL_YEAR=!FISCAL_YEAR! + 1") 
    SET "YEAR!VAR_INDEX!=FY!FISCAL_YEAR:~2,2!" 
) 
SET "MONTH_LIST=" 
SET "MONTH_INDEX=" 
SET "MONTH_OFFSET=" 

SET MONTH 
SET YEAR 

EXIT /B 0 

Und der Ausgang ist:

MONTH1=Aug 
MONTH10=May 
MONTH11=Jun 
MONTH12=Jul 
MONTH13=Aug 
MONTH14=Sep 
MONTH15=Oct 
MONTH16=Nov 
MONTH17=Dec 
MONTH18=Jan 
MONTH2=Sep 
MONTH3=Oct 
MONTH4=Nov 
MONTH5=Dec 
MONTH6=Jan 
MONTH7=Feb 
MONTH8=Mar 
MONTH9=Apr 
YEAR1=FY17 
YEAR10=FY17 
YEAR11=FY17 
YEAR12=FY17 
YEAR13=FY18 
YEAR14=FY18 
YEAR15=FY18 
YEAR16=FY18 
YEAR17=FY18 
YEAR18=FY18 
YEAR2=FY17 
YEAR3=FY17 
YEAR4=FY17 
YEAR5=FY17 
YEAR6=FY17 
YEAR7=FY17 
YEAR8=FY17 
YEAR9=FY17 
+0

Ich bin mir nicht ganz sicher was du willst. Das Ergebnis des Frage-Beispiels zeigt, dass sich das Jahr für "YEAR7 = FY17" für Januar ändert. Wenn Sie möchten, dass es im April startet, versuchen Sie 'SET/A" CUR_MONTH = 3 "'. – lit

+0

Vielleicht habe ich herausgefunden, was Sie wollten. Möchten Sie, dass das GESCHÄFTSJAHR APR-MAR ​​ist? Bitte überprüfen Sie die Ergebnisse erneut. – lit

+0

Ok, @ cec4111. Ich denke, ich habe fast alles für dich getan, was ich nicht tun sollte. – lit

Verwandte Themen