bat 批處理 字符串 截取


由於項目中配置項太多,經常有同事在配置xml的時候,講 配置的路徑搞錯,先需要搞一個腳本,可以自動將路徑截取出來,

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

后面留着 ,具體實現。

 

@echo off
set var=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
  set var=%%~nxa
)
echo.路徑為:%str%
echo.文件為:%var%
pause

 

::code by lxmxn @ cn-dos.net . 
::目的:幫助新手們更好的理解變量字符截取功能. 
::Date 2006-12-16 . 
::說明:有的變量截取之后值為空,這是正常的. 
:: 
@echo off&setlocal EnableDelayedexpansion 
::設置變量var的值: 
set var=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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM