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

時間 2021-08-11 17:15:56

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

md %m%

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

7樓:匿名使用者

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

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

8樓:匿名使用者

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判斷怎麼寫?

批處理檔案。在每一條命令後面加 例如ping 開啟。bat檔案,在最後部分加上 c 這樣c盤下就有對應的log了。這樣肯定錯誤。加到相應的bat內部去。bat 判斷檔案是否存在,不存在的話等待1秒再次判斷 echo off set name rem 這行是你需要查詢的檔案,如果存在就會馬上退出 ya...

如何用批處理檔案刪除某個檔案

1 開啟相關資料夾,可發現資料夾中有相關檔案。2 在任意位置,通過滑鼠右鍵新建一個txt文字文件。3 開啟txt文字,編輯輸入del g 0 f s q a pause並儲存。其中g 0是需要刪除的資料夾版絕對路徑,可根據實際更改 4 將文字字尾txt更改為bat,並確定。 del f a q 1 ...

怎麼寫批處理bat檔案來替換檔案

上面的都不對.echo off copy y c program files thunder userconfig.ini c program files thunder profiles userconfig.ini start c program files thunder thunder.ex...