我想创build一个指定为前一天的文件夹名称date的batch file。我该怎么办?
这是我的batch file。
Set Tarih1=%date:.=% d:\ cd \ Yeni Klasör md %date:.=% cd %date:.=%
提前致谢。
这是可能的 ,但是…
setlocal set _today=%date:.=% set _year=%_today:~0,4% set _month=%_today:~4,2% set _day=%_today:~6,2% :: leap year? set /a _yearm400=_year %% 400 set /a _yearm100=_year %% 100 set /a _yearm4=_year %% 4 if %_yearm400% equ 0 (set _leap=1) ^ else (if %_yearm100% equ 0 (set _leap=0) ^ else (if %_yearm4% equ 0 (set _leap=1) ^ else (set _leap=0))) :: strip leading zeros if %_month:~0,1% equ 0 set _month=%_month:~1% if %_day:~0,1% equ 0 set _day=%_day:~1% :: decrement day set /a _day-=1 :: decrement month if %_day% equ 0 ( if %_month% equ 2 set _day=31 if %_month% equ 3 set /a _day=28+_leap if %_month% equ 4 set _day=31 if %_month% equ 5 set _day=30 if %_month% equ 6 set _day=31 if %_month% equ 7 set _day=30 if %_month% equ 8 set _day=31 if %_month% equ 9 set _day=31 if %_month% equ 10 set _day=30 if %_month% equ 11 set _day=31 if %_month% equ 12 set _day=30 if %_month% equ 1 set _day=31 set /a _month-=1 ) :: decrement year if %_month% equ 0 ( set /a _year-=1 set _month=12 ) :: format new date if %_month% leq 9 set _month=0%_month% if %_day% leq 9 set _day=0%_day% echo %_year%%_month%%_day%
我build议使用更强大的编程语言–PowerShell ,也许Python或Perl。
电源shell:
$yesterday=(get-date (get-date).AddDays(-1) -uformat %Y%m%d) mkdir $yesterday
python:
import os import time yesterday = time.strftime("%Y%m%d", time.localtime(time.time() - 86400)) os.mkdir(yesterday)
此外,更改驱动器时,您必须只使用驱动器号,没有path。 d:\应该换成d: …或者只是使用cd /d D:\Yeni Klasör 。
如果你真的不想(或不能)使用PowerShell,那么你可以做它调用.vbs(VBScript文件)
文件CreateYesterdayFolder.vbs
' yyyymmdd.vbs - outputs the current date in the format yyyymmdd Function Pad(Value, PadCharacter, Length) Pad = Right(String(Length,PadCharacter) & Value, Length) End Function Dim yesterday, folderName yesterday = Date() - 1 folderName = Pad(Year(yesterday), "0", 4) & Pad(Month(yesterday), "0", 2) & Pad(Day(yesterday), "0", 2) Dim objFSO, objFolder, strDirectory newDirPath = "c:\temp\" & folderName ' example Set fso = CreateObject("Scripting.FileSystemObject") Set folder = objFSO.CreateFolder(newDirPath)
在你的batch file中这样调用它:
cscript CreateYesterdayFolder.vbs //NOLOGO