『壹』 如何在批處理腳本中獲取前一天的日期
使用下面的代碼就可以得到前一天的日期:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
@echo off
rem 計算指定天數之前的日期
set DaysAgo=1
rem 假設系統日期的格式為yyyy-mm-dd
call :DateToDays %date:~0,4% %date:~5,2% %date:~8,2% PassDays
set /a PassDays-=%DaysAgo%
call :DaysToDate %PassDays% DstYear DstMonth DstDay
set DstDate=%DstYear%-%DstMonth%-%DstDay%
echo %DaysAgo%天的日期是%DstDate%
pause
goto :eof
:DateToDays %yy% %mm% %dd% days
setlocal ENABLEEXTENSIONS
set yy=%1&set mm=%2&set dd=%3
if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
endlocal&set %4=%j%&goto :EOF
:DaysToDate %days% yy mm dd
setlocal ENABLEEXTENSIONS
set /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
endlocal&set %2=%yy%&set %3=%mm%&set %4=%dd%&goto :EOF
『貳』 批處理文件中,如何取得當前日期
首先打開cmd
date /t
看一下時間的格式
如果是2006-05-18這樣的
可以這樣寫
@echo off
@for /f "tokens=1,2,3 delims=- " %%a in ('date /t') do @set bb=%%a-%%b-%%c
@if exist aaa.dat (rename aaa.dat aaa_%bb%.dat) else (echo aaa.dat 不存在)
如果是18-05-2006這種格式,如果是英文版的都是這種格式
可以這樣寫
@echo off
@for /f "tokens=1,2,3 delims=- " %%a in ('date /t') do @set bb=%%c-%%b-%%a
@if exist aaa.dat (rename aaa.dat aaa_%bb%.dat) else (echo aaa.dat 不存在)
『叄』 bat獲取當前日期
獲取日期
格式: %date%
結果: 2012-07-31
獲取時間
格式: %time%
結果: 10:21:21.68
這是獲取的系統標准格式的日期和時間,但是有時候我們需要使用規定的格式,怎麼辦呢?
格式: %date:~x,y%以及%time:~x,y%
說明: x是開始位置,y是取得字元數
比如說我要獲取完整的日期和時間,
格式: %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
結果: 20120731111039
但是如果時間早於10點,那麼只顯示日期不顯示時間,如:20120731,如何解決呢?
格式: %date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%
結果: 20120731052539
這樣就達到我們的目標,成功的得到日期和時間了。
『肆』 用批處理如何獲取某個文件的修改日期
你是想讀取based.mft這個文件嗎?還是只要最後1個時間?如果只要最後修改的時間,不讀文件也行的,直接讀based.mft這個文件本身的修改時間即可,用%~t1即可,具體結構如下:
……其他代碼……
Call:getLastTimebased.mft文件的路徑
……其他代碼……
goto:eof
:getLastTime
echo%~t1
goto:eof
如果你是想輸出最後5行,就得讀取based.mft文件了,代碼結構如下:
setn=5:這里的5改成3就是最後3行
set/aLine=0
for"usebackq"%%iin("based.mft文件的路徑")doset/aLine+=1
setLine-=%n%
more+%Line%"based.mft文件的路徑"
『伍』 DOS批處理有沒有返回日期時間的函數或命令
我對XP的命令提示符有些了解,如果你是在XP下。那麼這個應該好辦。
MD C:\%DATE%
COPY X:\*.jpg "c:\%date%" (X是指你的可移動磁碟的盤符,記得引號必須在沒開輸入法打英文狀態的引號)
我也順便說明一下這個的意思
%date%是一個系統變數,他代表當前系統的日期,MD是創建文件的命令,第一句就是在C盤創建以當前日期為名稱的文件夾
不知道你的照片是在可移動磁碟的哪個目錄,一般數碼照相相片格式是JPG。如果照片是在你的可移動磁碟的123文件夾里,你就把那個X:\*.JPG改成x:\123\*.jpg.
(再次說一下,X是指可移動磁碟的盤符)
『陸』 批處理中如何使用%time%獲取當前時間並傳遞到下一個命令
樓上兩位的答案在系統時間每小時的59分、8分、9分時將出現時間進位和數字進位制(8進制和10進制混淆)產生的計算錯誤,就樓上的代碼給你改正一下。
@echo off
set hh=%time:~0,2%&set mm=%time:~3,2%&set ss=%time:~6,5%
if "%time:~3,1%"=="0" set /a mm="%time:~4,1%"
if "%time:~0,1%"=="0" set /a mm="%time:~1,1%"
set/a mm+=1
if "%mm%"=="60" set mm=00&&set/a hh+=1
if "%hh%"=="24" set hh=00
echo 現在的時間是: %time%
echo 一分後的時間: %hh%:%mm%:%ss%
pause
請樓主測試並放心使用。
『柒』 bat腳本中如何獲取明天日期
@echooff
echowscript.echodateadd("d",1,now())>a.vbs
for/f%%iin('cscript/nologoa.vbs')dosett=%%i
echo%t%
if"%t:~6,1%"=="-"sett=%t:~,5%0%t:~5%
echo%t%
if"%t:~9,1%"==""sett=%t:~,8%0%t:~-1%
echo%t%
pause
『捌』 如何使用批處理命令,使本地計算機獲取伺服器時間
@echo off
::這個意思是獲取192.168.1.100時間
net time \192.168.1.100
::這個意思是同步192.168.1.100時間
net time \192.168.1.100 /set
『玖』 用批處理 獲取時間的命令
你的變數截取位置弄錯了.
%date:~起始截取位置,依次往後截取字元的數量%
另外,set folder= 不需要加雙引號
然後echo %folder% 測試一下,你就知道你截取的對不對了.
『拾』 批處理命令怎麼獲取FTP伺服器上含日期命名的文件求指導
@echo off
echo open ip>a
set datenum=%date:~5,2%%date:~8,2%
echo user>>a
echo password>>a
echo bin>>a
echo get aaa%datenum%.txt>>a
echo bye>>a
ftp -s:a