bat 批處理 字串 擷取

2022-07-30 13:00:13 字數 2785 閱讀 7082

由於專案中配置項太多,經常有同事在配置xml的時候,講 配置的路徑搞錯,先需要搞乙個指令碼,可以自動將路徑擷取出來,

晚上收集了點資料,暫時先上幾個 bat

後面留著 ,具體實現。

@echo off

setvar=0

rem ************迴圈開始了

:continue

set /a var+=1

echo 第%var%次迴圈

if %var% lss 100

goto

continue

rem ************迴圈結束了

echo 迴圈執行完畢

pause

@echo off

set filepath=d:\program files\vmware\vmware.exe

::有/p引數時,是需要手動輸入,去掉後,即為固定。

for %%a in ("

%filepath%

") do(

set str=%%~pda

setvar=%%~nxa

)echo.路徑為:%str%echo.檔案為:%var%pause

::code by lxmxn @ cn-dos.net . 

::目的:幫助新手們更好的理解變數字元擷取功能.

::date

2006-12-16

. ::說明:有的變數擷取之後值為空,這是正常的.

:: @echo off&setlocal enabledelayedexpansion

::設定變數var的值:

setvar=0123456789abcdef

call :begin

for /l %%a in (1,3,15) do

( for /l %%b in (1,4,15) do

( call :printf %%a %%b

) )

call :begin

for /l %%a in (1,4,15) do

( for /l %%b in (-1,-3,-15) do

( call :printf %%a %%b

) )

call :begin

for /l %%a in (-2,-3,-15) do

( for /l %%b in (1,4,15) do

( call :printf %%a %%b

) )

call :begin

for /l %%a in (-1,-4,-15) do

( for /l %%b in (-2,-3,-15) do

( call :printf %%a %%b

) )

pause

endlocal&cls&echo.

echo 演示結束了,任意鍵退出……

pause>nul

goto

:eof

::輸出結果:

:printf

echo %%var:~%1,%2%% 擷取之後的字元為: !var:~%1,%2!

goto

:eof

::清理螢幕:

:begin

echo\&pause&cls&echo.

echo 變數var的值為: %var%echo.

goto :eof

@echo off

set str=123456789

rem 定義乙個str字串為123456789

echo 第乙個字元為:%str:~0,1%rem 指標為0,偏移位址為1,即從第0位開始,取1位

echo 頭兩個字元為:%str:~0,2%rem 指標為0,偏移位址為2,即從第0位開始,取2位

echo 頭5個字元為:%str:~0,5%rem 指標為0,偏移位址為5,即從第0位開始,取5位

echo 去掉最後乙個字元後的字串為:%str:~0,-1%rem 當"k

"為負值時,我們可以這樣理解:從指標開始處開始取其後面所有字元,然後減去後面"

abs(k)位

"..所以這個句字我們可以做如下解釋:從第0位開始取其全部字元

為:123456789然後從後面減去abs(k)位,所以最後結果為:

12345678

echo 去掉最後3個字元後的字串為:%str:~0,-3%rem 該句解釋同上↑

echo 最後乙個字元為:%str:~-1%rem 引數"n,

"和"k

"都可以為預設,預設"n,"

時可以理解為:從abs(k)位開始取其全部

echo 倒數第4個及其之後的字元為:%str:~-4%rem 解釋同上↑

echo 最後乙個字元為:%str:~-1,1%rem n為負值時,表示從後面開始擷取字元,取k位(此時n應從1開始數)

echo 最後乙個字元為:%str:~-1,2%rem 解釋同上↑

echo 倒數第4個字元為:%str:~-4,1%rem 解釋同上↑

echo 倒數第4個及其之後的1個字元為:%str:~-4,2%rem 解釋同上↑

echo 倒數第4個及其之後的2個字元為:%str:~-4,3%rem 解釋同上↑

pause

for /f "

eol=- tokens=2 delims=

" %%i in (result.txt) do echo %%i>>s2.txt

bat批處理字串擷取補充

先複製貼上一段網上很容易就搜到的內容 echo off set ifo abcdefghijklmnopqrstuvwxyz0123456789 echo 原字串 第二行為各字元的序號 echo ifo echo 123456789012345678901234567890123456 echo 擷...

批處理學習 字串擷取

echo off set ifo abcdefghijklmnopqrstuvwxyz0123456789 echo 原字串 第二行為各字元的序號 echo ifo echo 123456789012345678901234567890123456 echo 擷取前5個字元 echo ifo 0,5...

批處理變數 擷取字串方法

echo off set str 123456789 echo 第乙個字元為 str 0,1 echo 頭兩個字元為 str 0,2 echo 頭5個字元為 str 0,5 echo 去掉最後乙個字元後的 字串為 str 0,1 echo 去掉最後3個字元後的 字串為 str 0,3 echo 第4...