針對bat相關命令 ,不一一陳列了,就將自己做的乙個事情時遇到的問題,以及解決問題時候思路過程做一記錄,以便後續查詢。
前提:
有乙個這樣的需求:有一段指令碼**,**中有乙個陣列,你現在要在打包之前,動態的往**中的陣列中新增一些值,如:
準備修改的檔案test.lua
config = {};
config.one = "0"
; config.two = "1"
; config.configs = ;
我們現在做的事情,就是寫乙個配置檔案,沒在打包之前,呼叫這個配置檔案,然後動態的將配置檔案中的值寫入到config.configs這個table中去。
假設給乙個配置檔案kchannel.txt
600
457879
裡面就三個值,最後達成的效果如下:
config = {};
config.one = "0"
; config.two = "1"
; config.configs = ;
執行過程:
我們打算建乙個bat檔案:config.bat,然後將上述kchannel.txt配置檔案拖到config.bat上,然後達到動態修改test.lua的效果
實現過程:
1.首先解決 獲取bat拖上檔案的路徑 : 「%~f1」標識檔案的路徑;」%~f0」標識bat批處理檔案的路徑;
2.其次涉及到字串的處理,而且在迴圈中涉及到變數處理:
1)、在迴圈中要對變數再編輯的話,要啟用延遲變數的設定,用setlocal命令,具體的你輸入setlocal /?看幫助,它一般是跟 endlocal配對使用,要不然迴圈資料多的時候,會出錯
2)、用for讀取檔案的時候,最好不要直接用檔名,而要用more命令來讀取。否則在列表檔名的中間有空格的時候,好像會出錯。
3)、在使用使用延遲環境變數的範圍內操作某個變數的話,要用 !變數名!,而不是%變數名%,for自身的變數%%a等例外。
3.見最終核心程式:
@echo off
setlocal enabledelayedexpansion
set "fn=test.lua"
set "aim=config.configs = {"
for /f "delims=: tokens=1*" %%i
in ('more %~f1') do (
set kchannel=!kchannel!"%%i",
)(for /f "delims=: tokens=1*" %%i
in ('findstr /n .* "%fn%"') do (
if "%aim%" equ "%%j" (echo,%aim%&echo,%kchannel%)else
echo;%%j
))>temp.txt
endlocal
that』s all 修改ip位址bat
echo off mode con cols 50 lines 20 title ip位址設定工具 color 3f clsecho.echo.echo ip位址切換程式 echo echo.echo 自動獲取動態ip,請按 0 echo.echo 手工設定的ip1,請按 1 echo.echo 手...
android menu 實現動態修改menu
在乙個android建立選單menu時,需要重寫activity的oncreateoptionsmenu menu menu 方法,這個方法只在第一次建立的時候呼叫一次,所以如果之後想對menu進行動態的修改,那麼就不要再對oncreateoptionsmenu做什麼手腳了。於是就要用到onprep...
bat命令總結
今天就先搞一搞dos命令的檔案處理吧,其實dos命令真的很強大。比如c c 你操作個檔案,還要建立個物件,還要搞指標,讀寫方式,然後再操作之類的,就沒有命令列下方便。學會dos下的檔案處理,要搞明白 資料i o流重定向 硬碟儲存和高速快閃儲存器 我先說一下原理,然後再將具體實現吧 情景 在你用記事本...