1.

Solve : .Bat to create nest of folders?

Answer»
I need to .bat file to create a nest of folders

Main folder to be created in a location using tomorrows date

Contained within a folder called:
Mail191208 (Mailddmmyy) with tomorrows date year to shortyear

Contained within that folder 3 other folders
This folder containing 3 other folders with specific names

mail1
mail2
mailrun

This what I got so far not working as I entended

@echo off
cls


:: Create/run vbs file (extracts date components) & set variables..
::
set vb=%temp%\newdate.vbs
echo Newdate = (Date() ) > %vb%
echo Yyyy = DatePart("YYYY", Newdate) >> %vb%
echo Mm = DatePart("M" , Newdate) >> %vb%
echo Dd = DatePart("D" , Newdate) >> %vb%
echo Wd = DatePart("WW" , Newdate) >> %vb%
echo Wn = DatePart("Y" , Newdate) >> %vb%
echo Ww = datepart("W" , Newdate) >> %vb%

echo Wscript.Echo Yy^&" "^&Mm^&" "^&Dd^&" "^&Wd^&" "^&Ww^&" "^&Wn >> %vb%

FOR /F "tokens=1-6 delims= " %%A in ('cscript //nologo %vb%') do (
set Year=%%A
set Month=%%B
set Day=%%C
set Week#=%%D
set Weekday#=%%E
set Day#=%%F
set ShortYear=%%Z
)
del %vb%

If %Month% lss 10 set Month=0%Month%
if %Day% lss 10 set Day=0%Day%

set Today=%Day%%Month%%Year%
for /f "Tokens=%Month%" %%A in (
"January February March April May June July August September October November December") do (
set Alfamonth=%%A
)


set Filename="\%Year%\%Alfamonth%\%Today%"
echo Source path\
echo filename = %Filename%
echo.
echo Today = %Today%
echo Year = %Year%
echo Alpha month = %Alfamonth%


md c:\test\%Year%\%Alfamonth%\%Today%
md c:\test\%Year%\%Alfamonth%\%Today%\mail\%%E\%%B\%%Z

Its creating the folders as follows:

C:\test\12\511812\mail%%E

require C:test\December\mail191208right got it part working

still trying to create the folder

mailddmmyy (spefically with date yy)
C:\test\2008\December\18122008\mail\%E\%B\%ZHi Got it to work but have to enter the year manually.

How can I convert %Year% instead of YYYY to YY

for example if %Year%=2008 set Year=08
if %Year%=2009 set Year=09


Current working code..

@echo off
cls


: This file should be saved as .bat, and when run will create a copy of the outgoing mail to the given DESTINATION as PER code
:: Create/run vbs file (extracts date components) & set variables..
::
set vb=%temp%\newdate.vbs
echo Newdate = (Date() ) > %vb%
echo Yyyy = DatePart("YYYY", Newdate) >> %vb%
echo Mm = DatePart("M" , Newdate) >> %vb%
echo Dd = DatePart("D" , Newdate) >> %vb%
echo Wd = DatePart("WW" , Newdate) >> %vb%
echo Wn = DatePart("Y" , Newdate) >> %vb%
echo Ww = datepart("W" , Newdate) >> %vb%

echo Wscript.Echo Yyyy^&" "^&Mm^&" "^&Dd^&" "^&Wd^&" "^&Ww^&" "^&Wn >> %vb%

FOR /F "tokens=1-6 delims= " %%A in ('cscript //nologo %vb%') do (
set Year=%%A
set Month=%%B
set Day=%%C
set Week#=%%D
set Weekday#=%%E
set Day#=%%F
)
del %vb%

If %Month% lss 10 set Month=0%Month%
if %Day% lss 10 set Day=0%Day%
set Today=%Day%%Month%%Year%
for /f "Tokens=%Month%" %%A in (
"January February March April May June July August September October November December") do (
set Alfamonth=%%A
)


set Filename="\%Year%\%Alfamonth%\%Today%"
echo Source path\
echo filename = %Filename%
echo.
echo Today = %Today%
echo Year = %Year%
echo Alpha month = %Alfamonth%
echo Day=%Day%
echo Month=%Month%



md c:\test\%Year%\%Alfamonth%\%Today%
md c:\test\%Year%\%Alfamonth%\%Today%\mail%Day%%Month%"08"


Discussion

No Comment Found