2013-10-31 125 views
12

我們有一個簡單的批處理文件,它創建文件夾的備份並將日期附加到最後的&時間。根據當前日期和時間創建文件夾的批處理文件

我們逐漸使用它,並輸出一個文件夾,如「數據28-04-13」。

我想添加時間到這個結尾,但是我的代碼輸出時間爲HH:MM,這對文件夾名稱無效,因爲它包含冒號(:)。

請有人可以修改我的代碼來刪除:,或用「。」替換它。

謝謝

@echo off & for /F "tokens=1-4 delims=/ " %%A in ('date/t') do (
set DateDay=%%A 
set DateMonth=%%B 
set DateYear=%%C 
) 

@echo off & for /F "tokens=1-4 delims=/ " %%D in ('time/t') do (
set DateTime=%%D 
) 

set CurrentDate=%DateDay%-%DateMonth%-%DateYear%-%DateTime% 

md "F:\MobilePC\data %CurrentDate" 

回答我自己的問題

所以,這對我來說是最簡單的方法:它輸出 「31-10-13-11.35」

set CurrentDate=%DateDay%-%DateMonth%-%DateYear%-%time:~0,2%.%time:~3,2% 

+0

使用的%日期%缺省的批處理變量%時間%做到這一點? –

+0

,您可以看到%time%輸出以下HH:MM中的時間,對於文件夾名稱無效,因爲它包含冒號。 – TheNineteenNineties

+0

'時間'變量還包括AM中必須考慮的空間。我在下面使用'WMIC'的建議消除了XP Pro及更高版本的問題。 – foxidrive

回答

1

http://www.dostips.com/DtTipsStringManipulation.php

運行「替換子字符串」的搜索。

+0

謝謝你,所以我想工作了這一點,我也做了以下 集CurrentDateUnedited =%DateDay% - %DateMonth% - %DateYear% - 。%的DateTime% 集的currentdate =%CurrentDateUnedited% 回聲%的currentdate% set str =%str :: =% echo。%CurrentDate% 但是,因爲它是一個冒號,我不知道如何解析代碼? – TheNineteenNineties

+0

我認爲你需要'echo%str%'而不是'echo%CurrentDate%'。另外,正如@SamN所說的,你可以使用內建的'%time%'。 –

6
rem replace : with . 
set myTime=%time::=.% 

rem remove cents of second 
set myTime=%myTime:~0,-3% 
15

該代碼的前四行將爲您提供XP Pro及更高版本中可靠的YY DD MM YYYY HH Min Sec變量。

內置的cmd日期和時間變量是用戶可配置的,因此對於任何通用批處理文件都不可靠。

@echo off 
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a" 
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%" 
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%" 

set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%" 
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%" 
echo datestamp: "%datestamp%" 
echo timestamp: "%timestamp%" 
echo fullstamp: "%fullstamp%" 
pause 
0
setlocal 
    set "time=%time::=%" 
    rem check that date has/delimeter if not replace it for valid 
    md %date:/=%_%time:~0,-3% 
endlocal 
5

您可以通過這樣設置當前日期和時間。 我在我的批處理文件中每天都使用這個。

%date:~10%%date:~4,2%%date:~7,2%%time:~0,2%%time:~3,2% 

輸出繼電器:

201509141639 (14th sept 2015 04:39 PM) 
+1

請您詳細說明您的答案,並添加關於您提供的解決方案的更多描述。 – abarisone

+0

@abarisone: 在這個前。它將按YYYYMMDDHHMM格式分隔日期。
我正在使用它來生成我的複製文件列表,如下所示。
xcopy/e/y C:\ Upload C:\ Archive >> C:\ Result \%date:〜10 %% date:〜4,2 %% date:〜7,2 %% time:〜0 ,2 %%時間:〜3,2%.txt 它創建帶有複製文件名的文本文件。 –

-1

此代碼將創建與當前日期&時間和拷貝從完整的內容命名的文件夾「d:\理貨數據」爲「2016年8月10日17 23 「文件夾。

它需要在您的計算機的d驅動器名爲「理貨數據」文件夾。(下面的代碼複製到一個文本文件,並保存爲DOS批處理文件)

for /f "tokens=1* delims=" %%a in ('date /T') do set datestr=%%a 

set time=%TIME:~0,2%" "%TIME:~3,2% 

mkdir C:\%date:/=%" "%time%\Backup 

xcopy "D:\Tally Data" C:\%date:/=%" "%time%\Backup /E /S /Q /Y 
+0

請避免用大寫字母填寫答案。 – Matt

相關問題