bat 批處理 字符串 截取

因爲項目中配置項太多,常常有同事在配置xml的時候,講 配置的路徑搞錯,先須要搞一個腳本,能夠自動將路徑截取出來,spa

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

後面留着 ,具體實現。指針

 

@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
相關文章
相關標籤/搜索