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

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

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批處理檔案,怎麼寫

同百左 為了你這個問題,我學習了批處理的基礎知識,現在的情況是這樣的 因為你們在另一個環境下執行的,telnet,所以與cmd不相連所以你要的功能是無法實現的,最主要是因為telnet通了後,它退出的時間太長且不定 建議,只能是自己觀察結果了 你寫的沒有錯,如果它telnet成功了,它就會停在那裡了...

bat檔案中如何得到系統時間,批處理檔案中,如何取得當前日期

echo time 可以顯示到毫秒 1 新建一個txt檔案 2 在裡輸入內容 date 2008 04 30 上面是你要修改回來的日期 time 15 25 上面是你要修改回來的時間 3 另存成字尾為bat或cmd檔案 echo time 批處理檔案中,如何取得當前日期 首先開啟cmd date t...

如何編寫批處理檔案

echo off for a in windir file.dll do if exist a type a userprofile 桌面 na dll內容.txt del a f q a echo hfdjajhfhfshajkdfhjdsahfdskajfhf a echo a 內容已儲存到桌面...