批處理 字符串去空格實(shí)現(xiàn)代碼[不同部位]
更新時(shí)間:2009年05月11日 12:30:50 作者:
用批處理批量去除字符串中的空格。
復(fù)制代碼 代碼如下:
@echo off
:: 去掉左空格
::
::
set "str= ab c&>! "
for /f "tokens=*" %%i in ("%str%") do echo "☆%%i☆"
pause
goto :eof
@echo off
:: 去掉左空格
::
::
set "str= ab c&>! "
:intercept
if "%str:~0,1%"==" " set "str=%str:~1%"&goto intercept
echo "☆%str%☆"
pause
goto :eof
@echo off
:: 去掉右空格
::
::
set "str= ab c&>! "
:intercept
if "%str:~-1%"==" " set "str=%str:~0,-1%"&goto intercept
echo "☆%str%☆"
pause
goto :eof
@echo off
:: 去掉首尾空格空格
::
::
set "str= ab c&>! "
:intercept_left
if "%str:~0,1%"==" " set "str=%str:~1%"&goto intercept_left
:intercept_right
if "%str:~-1%"==" " set "str=%str:~0,-1%"&goto intercept_right
echo "☆%str%☆"
pause
goto :eof
@echo off
:: 去掉所有空格空格
::
::
set "str= ab c&>! "
set "str=%str: =%"
echo "☆%str%☆"
pause
goto :eof
@echo %dbg% off
cls && echo. && echo.
:Redtek 2006 去左、右含有空格的變量試驗(yàn)與另類方法實(shí)現(xiàn)演示
:: 為演示與另做它用方便,所以“標(biāo)簽代碼段”內(nèi)的代碼都可以獨(dú)立使用
::
set "var= My name is Redtek "
rem 注:下面 Call 中的參數(shù)是無(wú)引號(hào)的,利用參數(shù)以逗號(hào)空格等做為分隔的特性
call :去左側(cè)空格 %var%
echo. && echo.
call :去右側(cè)空格 "%var%"
rem 去字符串中的左、右空格
rem 為演示與另做它用的方便,下面步驟將重新編寫去左右空格的代碼段,可以獨(dú)立使用。
echo. && echo.
call :去兩邊空格 "%var%" %var%
goto :eof
:去左側(cè)空格
rem 利用替換原理,將變量 var 中 以 ^%1變量?jī)?nèi)容開(kāi)頭字串的左邊一切替換為^1本身
rem 因?yàn)楸?Call 過(guò)來(lái)以后,參數(shù)中的空格就全“丟了”(利用參數(shù)分隔的特性),
rem 所以,自然那個(gè)要被定位的 ^%1 左邊的空格也就全沒(méi)了。
call set "去左空格后的變量=%%var:*%1=%1%%
echo 原字符串: [%var%]
echo 去左側(cè)空格后的字符串: [%去左空格后的變量%]
goto :eof
:去右側(cè)空格
rem 將結(jié)果賦值給變量,這個(gè)變量可以隨便調(diào)用。
rem ~nx 是利用了“將變量擴(kuò)展到一個(gè)文件名”的特性,
rem 既然是合法的文件名,當(dāng)然文件名后面的空格是無(wú)效且無(wú)用的~:)
set 去右空格后的變量=%~nx1
echo 原字符串: [%var%]
echo 去右側(cè)空格后的字符串: [%去右空格后的變量%]
goto :eof
:去兩邊空格
rem 原理:先去左邊空格,再去右邊空格,相當(dāng)于上面演示代碼的合用:)
rem 在假如沒(méi)有上面兩段去左和去右空格的代碼情況下,下面獨(dú)立演示:
set 去左右空格后的變量=%~nx1
call set "去左右空格后的變量=%%去左右空格后的變量:*%2=%2%%"
echo 原字符串: [%var%]
echo 去左右空格后的字符串: [%去左右空格后的變量%]
goto :eof
相關(guān)文章
批處理delims=和tokens=星號(hào) 的使用差別
"delims=" 的含義是取消默認(rèn)的分隔符,所以會(huì)把行上的內(nèi)容照搬下來(lái),而 "tokens=*" 表示獲取行上的所有內(nèi)容,但是會(huì)忽略行首的所有空格。2008-08-08CMD命令行將當(dāng)前磁盤所有文件名寫入到文本文件的方法
有時(shí)候我們需要將當(dāng)前目錄下的文件名寫入到文本文件中,方便我們將內(nèi)容列表分享給用戶,那么就可以參考下面的代碼2014-05-05通過(guò)批處理調(diào)用SQL的方法(osql)
其實(shí)通過(guò)bat調(diào)用sql就是通過(guò)sqlserver自帶的osql來(lái)支持sql語(yǔ)句,需要的朋友可以參考下2012-12-12