Using DOS batch processing to realize the code of establishing folders

Time:2021-10-21

Title: creating folders with DOS batch processing
Requirements: 1. It is required to create a folder with file name format of “yyyy1-mm1-dd1 to yyyy2-mm2-dd2”
      2 where yyyy1-mm1-dd1 is today’s date; Yyyy2-mm2-dd2 is the date after four days
answer:

Copy codeThe code is as follows:
@echo off 
rem   Comparison operator:    EQU  –  be equal to    NEQ  –  Not equal to     LSS  –  less than     LEQ  –  Less than or equal to     GTR  –  greater than     GEQ  –  Greater than or equal to  
rem   Modulo operator:   %%  Modulus operator of DOS (use%% in batch file and% in non batch command line)  

rem   Log folder name initial value  
set   Filelog =% date: ~ 0,10% to  
rem   Variables for subsequent dates  
set /A y=0 
set /A m=0 
set /A d=0 
rem   Take the two digits of DD in the date yyyymmdd  
set /A dd= %date:~8,2% 
set /A ddp4= %dd% + 4 
rem   Take the two digits of mm in the date yyyymmdd  
set /A mm= %date:~5,2% 
set /A mmp1= %mm% + 1  
rem   Take the four digits of yyyy in the date yyyymmdd  
set /A yyyy= %date:~0,4% 
set /A yyyyp1= %yyyy% + 1  
set /A yymd=yyyy %% 4 

rem   If it is a 31 day month(   1,3,5,7,8,10,12  ) 
rem   twelve   Special month  
if %mm% equ 12 ( 
 if %ddp4% leq 31 ( 
  set /A y=%yyyy%  
  set /A m=%mm%  
  set /A d=%ddp4%  
 ) 
 if %ddp4% gtr 31 ( 
  if %mmp1% gtr 12 ( 
   set /A y=%yyyy% + 1  
   set /A m= 1  
   set /A d=%ddp4% – 31  
  ) 
 ) 
 goto END 

if %mm% equ 10 ( 
 if %ddp4% leq 31 ( 
  set /A y=%yyyy%  
  set /A m=%mm%  
  set /A d=%ddp4%  
  ) 
  if %ddp4% gtr 31 ( 
  set /A y=%yyyy%  
  set /A m=%mmp1%  
  set /A d=%ddp4% – 31  
  ) 
  goto END 

if %mm% equ 8 ( 
 if %ddp4% leq 31 ( 
  set /A y=%yyyy%  
  set /A m=%mm%  
  set /A d=%ddp4%  
  ) 
  if %ddp4% gtr 31 ( 
  set /A y=%yyyy%  
  set /A m=%mmp1%  
  set /A d=%ddp4% – 31  
  ) 
  goto END 

if %mm% equ 7 ( 
 if %ddp4% leq 31 ( 
  set /A y=%yyyy%  
  set /A m=%mm%  
  set /A d=%ddp4%  
  ) 
  if %ddp4% gtr 31 ( 
  set /A y=%yyyy%  
  set /A m=%mmp1%  
  set /A d=%ddp4% – 31  
  ) 
  goto END 

if %mm% equ 5 ( 
 if %ddp4% leq 31 ( 
  set /A y=%yyyy%  
  set /A m=%mm%  
  set /A d=%ddp4%  
  ) 
  if %ddp4% gtr 31 ( 
  set /A y=%yyyy%  
  set /A m=%mmp1%  
  set /A d=%ddp4% – 31  
  ) 
  goto END 

if %mm% equ 3 ( 
 if %ddp4% leq 31 ( 
  set /A y=%yyyy%  
  set /A m=%mm%  
  set /A d=%ddp4%  
  ) 
  if %ddp4% gtr 31 ( 
  set /A y=%yyyy%  
  set /A m=%mmp1%  
  set /A d=%ddp4% – 31  
  ) 
  goto END 

if %mm% equ 1 ( 
 if %ddp4% leq 31 ( 
  set /A y=%yyyy%  
  set /A m=%mm%  
  set /A d=%ddp4%  
  ) 
  if %ddp4% gtr 31 ( 
  set /A y=%yyyy%  
  set /A m=%mmp1%  
  set /A d=%ddp4% – 31  
  ) 
  goto END 

rem   If it’s a 30 day month(   4,6,9,11  ) 
if %mm% equ 11 ( 
 if %ddp4% leq 30 ( 
  set /A y=%yyyy%  
  set /A m=%mm%  
  set /A d=%ddp4%  
  ) 
  if %ddp4% gtr 30 ( 
  set /A y=%yyyy%  
  set /A m=%mmp1%  
  set /A d=%ddp4% – 30  
  ) 
 goto END 

if %mm% equ 9 ( 
 if %ddp4% leq 30 ( 
  set /A y=%yyyy%  
  set /A m=%mm%  
  set /A d=%ddp4%  
  ) 
  if %ddp4% gtr 30 ( 
  set /A y=%yyyy%  
  set /A m=%mmp1%  
  set /A d=%ddp4% – 30  
  ) 
 goto END 

if %mm% equ 6 ( 
 if %ddp4% leq 30 ( 
  set /A y=%yyyy%  
  set /A m=%mm%  
  set /A d=%ddp4%  
  ) 
  if %ddp4% gtr 30 ( 
  set /A y=%yyyy%  
  set /A m=%mmp1%  
  set /A d=%ddp4% – 30  
  ) 
 goto END 

if %mm% equ 4 ( 
 if %ddp4% leq 30 ( 
  set /A y=%yyyy%  
  set /A m=%mm%  
  set /A d=%ddp4%  
  ) 
  if %ddp4% gtr 30 ( 
  set /A y=%yyyy%  
  set /A m=%mmp1%  
  set /A d=%ddp4% – 30  
  ) 
 goto END 

rem   If it is a 28 or 29 day month(   two  ) 
if %mm% equ 2 ( 
 if %yymd% equ 0 ( 
  if %ddp4% leq 29 ( 
   set /A y=%yyyy%  
   set /A m=%mm%  
   set /A d=%ddp4%  
  ) 
  if %ddp4% gtr 29 ( 
   set /A y=%yyyy%  
   set /A m=%mmp1%  
   set /A d=%ddp4% – 29  
  ) 
  goto END 
 ) 
 if %ddp4% leq 28 ( 
  set /A y=%yyyy%  
  set /A m=%mm%  
  set /A d=%ddp4%  
 ) 
 if %ddp4% gtr 28 ( 
  set /A y=%yyyy%  
  set /A m=%mmp1%  
  set /A d=%ddp4% – 28  
 ) 

rem   Combine folder names and create folders  
:END 
if %m% lss 10 set filelog=%filelog%%y%-0%m% 
if not %m% lss 10 set filelog=%filelog%%y%-%m% 
if %d% lss 10 set filelog=%filelog%-0%d% 
if not %d% lss 10 set filelog=%filelog%-%d% 
mkdir %filelog% 

Recommended Today

Kudu: introduction and architecture of Apache kudu

Summary:Kudu,Hdfs,Hbase Introduction to kudu Kudu is open source by clouderaStorage engine, low latency can be provided at the same timeRandom reading and writingAnd efficientBatch data analysisAbility, he is a fusionHdfsandHbaseA new component with a new storage component in between. Kudu and HBase HDFS comparison.png Kudu is a big data storage engine, which can be combined […]