
做個實驗了解批處理究竟是怎么執行的對于echo off命令 市面上的教程總是說他用來關閉回顯,是的,那些淺顯的抄來的教程只能這么說 他懶的再深入的說了。對于一個學習批處理的新手來說,他是完全不知道回顯是什么意思的。我就深受其害 所以我在寫批處理教程的時候是絕不會簡單說一句關閉回顯來搪塞人的。讀到這里的你也思考思考這個回顯究竟是什么 你知道嗎?甚至有些批處理已經入門的同志也只是錯誤的認為關閉回顯就是關閉命令行和前面那個路徑。你知道開啟回顯時命令行的執行過程嗎?做一個實驗 輸入以下代碼:
也許有人認為這代碼是存在嚴重錯誤的。是不是錯誤先不說 這樣寫是有安排的。你說start 0.txt這個命令會執行嗎?答案是肯定的 不會那你說如果我雙擊這個bat 他都會做什么?看看截圖 歷歷在目:從這個圖 再對照代碼 你可以真真切切知道批處理的執行過程:以行為單位讀取批處理命令這個行不是你記事本里面的一行兩行 這里的行是用一個換行符號來標記的 在沒遇到行結束符號前 所有的代碼都是一行。在這個代碼里第一行就是括號里面的讀取完了做什么呢?由于回顯命令是打開的,cmd命令會把讀取到的命令原原本本的顯示在框里的而你會發現start 0.txt并沒有顯示這也基本上解釋了變量延遲的原理了cmd程序首先讀取一行命令 先做預處理!從哪里看出做了預處理了呢?你看最后一行的1>0.txt對照源代碼 1從哪里來?已經入門的知道這是句柄。處理完以后執行這一行命令我也不知道發這個帖子的目的是什么 我就是想說 想告訴你這個過程是怎么回事。nclick="copycode($('code0'));">復制代碼
- (echo hello world!
- exit
- echo will u see this line?)>0.txt
- start 0.txt

