批處理學習筆記2 處理C檔案,去除預處理語句

2021-07-03 05:20:08 字數 937 閱讀 9601

問題描述:給定乙個資料夾,資料夾內有很多檔案和子資料夾。現在要找出資料夾下所有的c原始碼檔案,對檔案進行處理,去除預處理命令,並在c檔案的資料夾下生成新的處理後的原始碼檔案。

批處理**如下:

setlocal enabledelayedexpansion

@echo off

for /r %1

%%i in (*.c) do (

set path=%%~dpi

set file=%%~nxi

set name=%%~ni

cd !path!

for /f "tokens=* delims="

%%j in (!file!) do (

set row=%%j

ifnot"!row:~0,1!"=="#" (

@echo;!row!>>!name!%2.c))

)

將以上**儲存到乙個批處理檔案processcfile.bat中。

簡單說來,這段**的核心是個雙重迴圈,外層迴圈遞迴搜尋資料夾,找出c檔案。找出後內層迴圈逐行處理c檔案,將不是預處理命令的**行輸出到新的檔案中。

這裡的%1是要搜尋的資料夾,%2是新生成的檔案的字尾。條件判斷語句內部有乙個echo;之所以加了分號,是為了能夠輸出空字串(即字串裡只有空字元);否則,!row!為空字串的話會輸出echo 處於開啟/關閉狀態。

關於echo輸出空格行還有多種方法,具體內容參見echo輸出空格行

呼叫這個批處理檔案的**如下:

call processcfile.bat e:\pangeneral

\leetcode clone

命令執行後,在c檔案所在資料夾內生成了新的c檔案,新的c檔案中不包含預處理命令。

批處理學習筆記

前言 批處理,也稱批處理指令碼。windows 環境下做開發,批處理 是乙個非常使用的工具,利用這個工具可以為專案開發提高很大的效率。window提供了很多的命令,通過批處理指令碼,組織這些命令,能夠很快速的做到很多事情,大多數是操作資料夾,操作檔案,啟動其他命令等等。具體例子有 工程打包輸出可執行...

Windows批處理學習筆記

1 call和start call是單執行緒處理,start是多執行緒處理。例如 call batch1.bat call batch2.bat batch1.bat執行完後,接著執行batch2.bat。如果沒有call,執行完乙個後,就結束了,因為windows批處理是單執行緒的.start b...

C 學習筆記3 處理資料

c primer plus 第6版 讀書筆記 知識點 1.oop的本質是設計並擴充套件自己的資料型別。2.變數命名規則 字母字元 數字 下劃線 第乙個字元不能是數字 區分大小寫 不能使用關鍵字 以兩個下劃線或下劃線加大寫字母打頭的名稱被保留給實現 編譯器及使用的資源 使用,以乙個下劃線開頭的名稱被保...