請問bat批處理檔案為何無法正常用date變數進行賦值

時間 2021-08-11 17:16:00

1樓:瘋狂的鼴鼠

我給你解讀一下

set date=%date:~8,2% date是系統變數,也就是說date=2018-09-01,再加上字串擷取%date:~8,2%就是從第8個字元開始向後擷取2個字元,所以%date:

~8,2%=01

set month=%date:~5,2% 到了這裡由於上面給date重新賦值了,所以date=01,那麼%date:~5,2%就是從“01”的第5位字元開始向後擷取兩位,但是01只有兩個字元,所以month賦值失敗。

再後來使用echo只出來date的值,沒有month的值,上面顯示“echo處於開啟狀態。”是顯示echo當前的狀態的。

2樓:依夢琴瑤

因為date這個是系統變數,您給它重新定義了,所以導致後續使用就出了問題。

set date=%date:~8,2%

就這麼一句,徹底打亂了原始變數的值。這個date的值在當前指令碼中就永遠變成當前日期。

所以系統預設的變數,不要隨意去重新定義。

請用其它一些名字賦值吧!

3樓:匿名使用者

因為%date%是系統變數 所以不能給他賦值 是系統保留的 是動態的你可以改個名字比如 riqi=%date:~8,2%%month%不是系統變數所以可以顯示 另外%year%也不是系統變數

舉個例子就像你給%random%(隨機數) 賦值一樣 賦值完成之後 系統在現實%random%的時候又要開始隨機數的計算並顯示 所以並不是你賦值的那個

但是%time% %errorlevel% %cd% %username% %random% 等一些都是 系統變數

不懂可以追問,滿意給個採納謝謝

bat檔案中如何建立時間變數

4樓:匿名使用者

date 和time兩個變數中包含了當前的的日期和時間。

=% date:~6,4% 就是引用date變數中,第六個字元開始的連續四位字元

在cmd中,輸入命令data 或 time 顯示為:

bat批處理,生成名字含時間變數的檔案(修訂版)可見date包含的字串為  12/08/2010 wed,time包含的字串為 12:21:09.

48注意的是,陣列下標是從0開始的。

因此,% date:~6,4%引用的是2008, 依次類推得到了日期和時間,就可以自己拼湊需要的檔名。

最後一句,dir > % abc%

將dir要輸出的內容輸出到 abc檔案中,abc為自己拼湊的檔名。

log_20101208_122109.txt

5樓:匿名使用者

樓上的回答不完全,沒有啟用計劃任務,我給你很正確的回答吧,**如下-----------------------------------------------

@echo off

sc config schedule start= autosc start schedule

::這樣句是設定計劃任務為自動,並且開機計劃任務at 10:00 /interactive /every:

m,t,w,th,f,s,su md d:\%date:~0,4%%date:

~5,2%%date:~8,2%

::在d盤下每天上午10點建立一個日期資料夾exit

---------------------------------------------

6樓:匿名使用者

使用下面的批處理即可:

::══代══碼══開══始═══

@echo off

set m=%date:~0,4%%date:~5,2%%date:~8,2%

md %m%

::══代══碼══結══束═══

7樓:匿名使用者

可能是你的屏保檔案有問題,中毒了吧。關了屏保試試。請參考

批處理 提取檔案修改時間賦值給變數

8樓:匿名使用者

@echo off&setlocal enabledelayedexpansion

for %%a in (*) do (

set "aa=%%~ta"

set "yyy=!copyaa:~0,4!!

baiaa:~5,2!!aa:~8,2!"

if not exist "!yyy!" md "!yyy!"

)set aa=%%~ta%最後的一個百du分zhi號是多餘的,去dao掉這個百分號就不會為空了

批處理問題 怎樣把讀取內容的變數值賦值給一個變數 例子如下

9樓:

@echo off

setlocal enabledelayedexpansionset "datenum=0"

set "ipath="

for /f "tokens=*" %%i in (.\logdate.txt) do (

set /a datenum+=1

if !datenum! equ 2 (

set "ipath=%%i"

rem 給變數賦值的時候最好用引號把變數括起來,因為bat對空格異常敏感

echo.%%i

echo.!ipath!))

pause

10樓:匿名使用者

1.最後一行的“echo!ipath! ”裡 echo和顯示內容最好打一個空格,不推薦在echo直接後接 . 或 = 或 \等來代替空格。

2.檔案裡的文字內容有問題,含有特殊字元如 | & !。如內容為 美眉!

美眉我愛你! 時,由於你開啟變數延遲,所以 !美眉我愛你!

會以變數處理,事實沒有這個變數,所以賦空,顯示時只剩下 美眉 了。其他特殊字元同理

如何自動執行bat批處理檔案,如何自動執行BAT批處理檔案

copy y 0 userprofile 開始 選單 程式 啟動 說明 這句意思,拷貝自身到開機啟動項 0 表示自身,你可以改為你需要的檔名,例如 copy y 我的批處理.bat userprofile 開始 選單 程式 啟動 還有一種方法 例如 你的批處理檔案在c program files x...

我要寫批處理檔案BAT,會把資料夾複製到我的下,怎麼寫

reg query hkcu software microsoft windows currentversion explorer user shell folders temp temp.txt for f tokens 2 delims i in type temp temp.txt finds...

怎麼建立批處理檔案,怎麼建立乙個批處理檔案?

1 在桌面滑鼠依次右鍵 新建 文字文件 2 在記事本中輸入命令 echo off echo 正在清除系統垃圾檔案,請稍等.del f s q systemdrive tmp del f s q systemdrive mp del f s q systemdrive log del f s q sy...