windows script 如何在批處理(.bat)文件中創建名稱為當前日期的文件夾



how to create a bat file to run command (16)

你會喜歡這個,改變它以便它可以滿足你的要求。

mkdir today
Copy Desktop\test1\*.* today
setlocal enableextensions
set name=%DATE:/=_%
Rename "today" _OlddatabaseBackup_"%name%"

我不太了解windows .bat文件的語法。 我的簡單要求是在特定位置創建一個文件夾,其名稱為當前日期。 我嘗試在谷歌搜索這個但沒有得到任何好的選擇。 有沒有辦法做到這一點?


Answer #1
G:

cd G:/app/

mkdir %date:~7,2%%date:~-10,2%%date:~-4,4% 

cd %date:~7,2%%date:~-10,2%%date:~-4,4% 

sqlplus sys/sys as sysdba @c:/new

Answer #2

我和AM一樣坐在與你完全相同的船之前10我不能使用下面的,我已經將時間從12小時設置為24小時,將hh / mm改為HH / mm我已經嘗試了大部分代碼我能找到。 下面至少會有所幫助。 調整併修復:)

以下可能也有幫助

設定DD =%日期:〜0.2%

設定MM =%日期:~3,2%

設定YY =%DATE:~8,2%

設定YYYY =%DATE:~6,4%

設為hh =%hh:= 0%

設定mm =%TIME:~3,2%

如果“%time:~0,1%”==“”(設置folderdate = 0%時間:~1.1%)ELSE set folderdate =%time:~0,2%

mkdir folderdate =%date:~6 %% date:~3,2 %% date:~0,2%_%folderdate %% time:~3,2%

copy \ Makereport * .CSV \ Makereport \%folderdate%\

cd%folderdate%REM - (7zip in c:\ batch)Path = c:\ batch

7z是Retail.zip * .CSV -pRetailPassword

光盤..

del * .csv


Answer #3

這是一個更簡單的解決方案。

@ECHO OFF
set name=%date%
echo %name%
mkdir %name% 

Answer #4

https://.com/a/31789045/1010918 foxidrive的回答幫助我獲得了我想要的日期和時間的文件夾。 我想在這里分享這種方法,因為它對我很有用,我認為它也可以幫助其他人,無論他們的地點如何。

rem The four lines below will give you reliable YY DD MM YYYY HH Min Sec MS variables in XP Pro and higher.

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 "MS=%dt:~15,3%"

 set "dirname=%YYYY%-%MM%-%DD% %HH%-%Min%-%Sec%"

 :: remove echo here if you like
 echo "dirName"="%dirName%"

Answer #5

你需要擺脫日期中的'/'字符才能在mkdir中使用它,如下所示:

setlocal enableextensions
set name=%DATE:/=_%
mkdir %name%

Answer #6

這應該工作:

mkdir %date%

如果沒有,試試這個:

setlocal enableextensions
mkdir %date%

Answer #7
echo var D = new Date() > tmp.js 
echo D = (D.getFullYear()*100+D.getMonth()+1)*100+D.getDate() >> tmp.js 
echo WScript.Echo( 'set YYYYMMDD='+D ) >> tmp.js 
echo @echo off > tmp.bat 
cscript //nologo tmp.js >> tmp.bat 
call tmp.bat
mkdir %YYYYMMDD%

Answer #8

如果您的語言環境的日期格式為“DDMMYYYY”,則必須按以下方式設置:

set datestr=%date:~-4,4%%date:~3,2%%date:~-10,2%
mkdir %datestr%

Answer #9

我有一個問題,因為我的服務器絕對必須以MM / dd / yyyy格式的日期,而我希望目錄是YYYY-MM-DD格式為了整潔。 無論您的區域設置如何設置,以下是如何以YYYY-MM-DD格式獲取它。

找出使用%DATE%時顯示的內容:

從命令提示符下鍵入:

ECHO %DATE%

我的出現03/06/2013(截至2013年3月6日)

因此,要將目錄名稱設置為2013-03-06,請將其編碼到批處理文件中:

SET dirname="%date:~6,4%-%date:~0,2%-%date:~3,2%"
mkdir %dirname%

Answer #10

這適用於我,嘗試:

ECHO %DATE:~7,2%_%DATE:~4,2%_%DATE:~12,2%

Answer #11
mkdir %date:~-4,4%%date:~-10,2%%date:~7,2%

Answer #12

試試這個(相當於bash反引號):

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

有關詳細信息,請參閱http://ss64.com/nt/for_cmd.html


Answer #13

感謝所有信息,非常有幫助。 我需要能夠在同一目錄中每分鐘創建“備份”文件夾的東西,以及稍後在腳本中調用它。 這就是我想出的:

@ echo off

CD %userprofile%\desktop

SET Datefolder="%DATE:~4,2%-%DATE:~7,2%-%DATE:~12,2%_%time:~1,1%%time:~3,2%"

MD "%Datefolder%"

這為我提供了當前登錄用戶桌面上的文件夾名稱:mm-dd-yy_hmm(小時分鐘)即:07-28-15_719


Answer #14

快速和臟:如果您可以使用UTC而不是本地日期,您可以使用:

for /f "skip=1" %%d in ('wmic os get localdatetime') do if not defined mydate set mydate=%%d
md %mydate:~0,8%

適用於所有語言環境。 但是,僅在XP及更高版本上。


Answer #15

這取決於計算機的區域設置,因此首先使用命令提示符或通過回顯日期來檢查日期的輸出。

為此,請創建批處理文件並添加以下內容

echo %date%<br\>    
pause

它產生一個輸出,在我的例子中它顯示了05/5/2015。

現在我們需要擺脫斜線(/)

為此,包括批處理文件中的以下代碼。

set temp=%DATE:/=%

如果你回顯“temp”,你可以看到沒有斜線的日期。

現在您需要做的就是以您想要的方式格式化日期。

例如,我需要格式為YYYYMMDD的日期,然後我需要設置如下的dirname

為了解釋這是如何工作的,我們需要比較temp的值

週五05062015。

現在將每個字符定位為以0開頭的數字。

週五0506201 5

01234567891011

所以對於我需要的日期格式是20150605,

2015年,其中2位於第8位,因此從第8位到第4位,將在2015年。

06年,其中0位於第6位,所以從第6位到2位,將成為06。

05日,其中0位於第4位,所以從第4位到2位,將成為05。

所以最後要設置最終格式,我們有以下內容。

SET dirname="%temp:~8,4%%temp:~6,2%%temp:~4,2%"

要在日期,月份和年份之間使用“ - ”或“_”增強此日期格式,您可以使用以下內容進行修改

SET dirname="%temp:~8,4%-%temp:~6,2%-%temp:~4,2%"

要么

SET dirname="%temp:~8,4%_%temp:~6,2%_%temp:~4,2%"

所以最終的批次代碼將是

================================================== ====

@echo off<br\>    
set temp=%DATE:/=%<br\>
set dirname="%temp:~8,4%%temp:~6,2%%temp:~4,2%"<br\>
mkdir %dirname%<br\>

================================================== ====

該目錄將在此批處理執行的位置創建。





batch-file