批處理相關筆記

字符串替換shell

格式 %變量C:A=B%app

意思就是把變量C中的A替換爲Bcode

·批處理對格式要求嚴格,該有的空格不能省略ip

(好比for語句 in 和do 旁邊的括號就必須有空格;echo 與括號之間也應該有空格,不然就報錯)rem

·開啓延遲環境變量擴展.字符串

我對延遲變量了解得不清楚,僅僅有一些印象,就是當你想讓聲明後的變量能夠立刻用起來,而不提示 ECHO已關閉的話, 那麼就要先開啓這個變量延遲。 開啓以後,引用變量的方式要從百分號變成感嘆號: %var%變成 !var!io

開啓方式在代碼前面寫:變量

setlocal EnableDelayedExpansion

自動請求管理員權限擴展

講這段代碼放在你的代碼前面便可:object

%1 %2 
ver|find "5.">nul&&goto :st 
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :st","","runas",1)(window.close)&goto :eof 
:st 
copy "%~0" "%windir%\system32\"

添加多行內容

個人作法是直接重定向進去:

echo 內容1>> temp.txt
echo 內容2>> temp.txt

刪除指定行數內容

好比你須要刪除 出現ABC 的那一段 到 EFG 那段中的全部內容。

那麼能夠使用這段代碼:

set FIND_ABC=false
set FIND_EFG=false
echo.>temp.txt
for /f  "delims=" %%i in ( file.txt ) do (
	set currentLine=%%i 
	echo !currentLine!|find "ABC">nul&&set FIND_START=true
	if !FIND_START!==true (
		if !FIND_END!==true (
			echo %%i>>temp.txt
		) 
	) else (
		echo %%i>>temp.txt
	) 
	echo !currentLine!|find "EFG">nul&&set FIND_END=true
 )

這段代碼的做用就是在循環到ABC和EFG那段的時候,不ECHO任何信息,

除此以外其餘全部內容都ECHO到 臨時問題件temp.txt上面去。

最後刪除file.txt文件,講臨時文件temp.txt重命名爲file.txt實現刪除指定行內容。

del file.txt rem 刪除文件
ren temp.txt file.txt 修改temp.txt名爲file.txt
相關文章
相關標籤/搜索