
[已解決]對(duì)于批處理變量的內(nèi)存占用與CPU有疑問(wèn)最后由 away 于 -1-23 22:50兩年前,我寫了一個(gè)根據(jù)文件后綴名把不同類型的文件放到不同文件夾的批處理。
- @echo off
- ::設(shè)置數(shù)據(jù)庫(kù)
- set ddc=lnk amr
- set n1=文檔:txt rtf doc pdf docx
- set n2=視頻:flv f4v avi mp4
- set n3=圖片:png jpg bmp gif
- set n4=音頻:mp3 wav m4a
- set n5=批處理:bat
- set n6=壓縮:7z zip
- set n7=程序:exe
- ::開(kāi)始任務(wù)
- setlocal enabledelayedexpansion
- for /l %%e in (1 1 12) do if defined n%%e (
- for /f tokens=1,2* delims=:: %%f in (!n%%e!) do (
- for %%h in (%%g) do set .%%h=.%%f
- )
- )
- for %%d in (!ddc! %~nx0) do set .%%~d=:y
- for %%i in (!CD!*) do (
- if not !%%~xi!==:y (
- if not defined .%%~nxi (
- if not defined %%~xi set %%~xi=%%~xi文件&set %%~xi=.整理于此!%%~xi:~1!
- if not exist !CD!!%%~xi:~1! md !CD!!%%~xi:~1!
- move %%i !CD!!%%~xi:~1!
- )
- )
- )
nclick="copycode($('code0'));">復(fù)制代碼
這個(gè)批處理的原理就是:對(duì)一大堆文件后綴名設(shè)定一個(gè)后綴名。然后對(duì)文件夾里的文件進(jìn)行處理。如果這個(gè)文件的后綴名已經(jīng)定義,那就移動(dòng)到定義文件夾,如果沒(méi)有定義。設(shè)文件名的后綴名為定義,然后移到定義的文件夾。我曾經(jīng)聽(tīng)批處理之家的大大說(shuō)過(guò)“變量越多,內(nèi)存占用就越大”。如果那位大大說(shuō)的是真的話,這樣一來(lái),內(nèi)存占用也就特別大了。現(xiàn)在我把這個(gè)批處理重寫了一遍。
- @echo off
- set ddc=子目錄文件轉(zhuǎn)移2.5.bat
- setlocal enabledelayedexpansion
- for %%d in (!ddc! %~nx0) do set %%~d=:21685key
- :開(kāi)始按關(guān)鍵詞分類
- for /f skip=26 tokens=1,2* delims=:: %%f in (%~nx0) do (
- for %%p in (%%g) do (
- for %%e in (%cd%*%%~p*) do (
- if not defined %%~nxe (
- if not exist %cd%%%f md %cd%%%f
- move %%e %cd%%%f
- )
- )
- )
- )
- )
- :開(kāi)始按后綴名分類
- for %%q in (!CD!*) do (
- if not defined %%~nxq (
- set %%~xq=%%~xq文件&set %%~xq=!%%~xq:~1!
- if not exist !CD!整理于此!%%~xq! md !CD!整理于此!%%~xq!
- move %%q !CD!整理于此!%%~xq!
- )
- )
- exit
- :數(shù)據(jù)庫(kù)
- 文檔:.epub .txt
- 整理于此圖片:.jpg .jpeg .png .gif
- 文檔:.txt .rtf .doc .pdf .docx
- 視頻:.flv .f4v .avi .mp4
- 圖片:.png .jpg .bmp .gif
- 音頻:.mp3 .wav .m4a
- 翻唱歌曲:翻唱
- 純音樂(lè):純音樂(lè) 鋼琴 piano 伴奏
nclick="copycode($('code1'));">復(fù)制代碼
好了,我開(kāi)始問(wèn)問(wèn)題了。1,第一個(gè)直接設(shè)定一大堆的變量,然后一個(gè)一個(gè)按變量來(lái)移動(dòng),而第二個(gè)完全不用【%XX%】變量,而是改用%%X的for的特有變量,這樣一來(lái)第二個(gè)的內(nèi)存占用是否比第一個(gè)少?抑或是一樣?但是第二個(gè)的減少變量的原理就是一次又一次的讀取批處理本身最后的那幾行。這樣CPU會(huì)不會(huì)比第一個(gè)高?高多少?還是一樣?這兩個(gè)批處理哪個(gè)更好?(資源占用方面)2,請(qǐng)告訴我為什么變量越多,內(nèi)存占用就越大?最后····關(guān)于貴論壇的分類我真的不知道應(yīng)該分系統(tǒng)相關(guān)好還是其它好,最后還是選了系統(tǒng)相關(guān),第一次在貴論壇發(fā)提問(wèn)帖子,有什么錯(cuò)了請(qǐng)?zhí)崾疽幌隆W詈髠€(gè)人根據(jù)回答的結(jié)論結(jié)果:1,理論上第二個(gè)的內(nèi)存占用會(huì)比第一個(gè)少,CPU應(yīng)該一樣吧。2,3樓已經(jīng)解答了,變量就是暫時(shí)儲(chǔ)存在內(nèi)存里,所以變量越多內(nèi)存越大。嗯,很簡(jiǎn)單的問(wèn)題呢- -