windows bat系列11:for處理案例四 去掉字串中的空格
背景
不管學習何種程式語言,何種程式設計指令碼,對字串的處理都是必備的基礎知識之一。本文講述BAT批處理指令碼中如何去掉字串中的空格。
原始碼
@echo off
set str_left=" with left space"
set str_right="with right space "
set str_space=" many space "
echo -------------Before strim---------------
echo=
echo %str_left%
echo %str_right%
echo %str_space%
echo=
echo -------------After strim---------------
CALL :StripLeft %str_left%
echo "%G_STRIP_LEFT_RETURN%"
CALL :StripRight %str_right%
echo "%G_STRIP_RIGHT_RETURN%"
CALL :StripLR %str_space%
echo "%G_STRIP_LR_RETURN%"
set strimALL=%str_space: =%
echo %strimALL%
pause
Rem ------------for call function---------
:StripLeft
for /f "tokens=*" %%i in (%1) do SET G_STRIP_LEFT_RETURN=%%i
GOTO:EOF
:StripRight
Rem n、x表示命令的選項,分別表示檔名、檔案擴充套件
Rem delims表示指定分隔符為空格
for /f "delims=" %%i in (%1) do SET G_STRIP_RIGHT_RETURN=%%~nxi
GOTO:EOF
:StripLR
Rem n、x表示命令的選項,分別表示檔名、檔案擴充套件
for /f "tokens=*" %%i in (%1) do SET G_STRIP_LR_RETURN=%%~nxi
GOTO:EOF
原始碼說明
- 原始碼設定了四種場景:去掉左邊空格、去掉右邊空格、去掉左右兩邊空格、去掉所有空格;設定了三個變數(str_left、str_right、str_space)用於測試;
- 針對前三種場景,使用了call的命令擴充套件用法,即call 後面帶標籤去執行標籤程式碼,DOS幫助文件的解釋如下:
If Command Extensions are enabled CALL changes as follows: CALL command now accepts labels as the target of the CALL. The syntax is: CALL :label arguments
- 為了便於觀察去掉空格操作導致字串的變化,我在定義變數時在字串兩側增加了雙引號包含字串內容,這樣處理前echo變數不需要帶引號,而在後面的for語句中%1(表示第一個引數)沒有帶引號,導致處理後再echo變數需要帶引號……有點混亂,請讀者自測;
- 標籤StripRight的處理使用了for語句中delims,指示用預設的分隔符(空格、tab)分割字串,後面的%%~nxi使用了命令擴充套件用法,原生態解釋如下(call /?):
%~n1 - expands %1 to a file name only
%~x1 - expands %1 to a file extension only
- Pause語句放到所有標籤命令塊的前面,不然會被當作標籤命令塊的一部分
測試結果
參考
DOS刪除空格
相關文章
- windows bat系列7:for處理案例二 產生等差序列WindowsBAT
- python如何去掉字串中的空格Python字串
- JS去掉字串空格JS字串
- js去掉字串兩邊的空格JS字串
- windows bat系列9:for處理案例三 單行按指定分隔符分割WindowsBAT
- Python如何去掉字串空格?Python字串
- bat 批處理字串操作BAT字串
- windows cmt bat批處理中的註釋WindowsBAT
- jquery如何去掉字串兩端的空格jQuery字串
- javascript如何去掉字串兩端的空格JavaScript字串
- js去掉字串中所有的空格JS字串
- javascript如何去掉字串兩端空格JavaScript字串
- 欄位處理rtrim去掉結尾的特殊字元和空格字元
- Python如何去掉字串所有空格?Python字串
- Python中去掉字串中空格的方法有哪些?Python字串
- windows 處理bat連線本地mysqlWindowsBATMySql
- windows批處理之一:字串處理Windows字串
- CSS 的空格處理CSS
- 去掉字串前後所有空格的正規表示式字串
- SHELL技巧:處理檔名中的那些空格
- PHP系列(五)PHP字串處理PHP字串
- windows批處理之四:特殊的字串擷取及結合perl的操作Windows字串
- Java入門教程四(字串處理)Java字串
- javascript刪除字串中的空格JavaScript字串
- 將字串中的空格用 代替字串
- 字串處理:下劃線,多空格變單空格,統計單詞出現個數字串
- 題解1196:去掉空格 (C語言描述)C語言
- 去掉變數的前後空格變數
- 05 Windows批處理中的字串和布林資料型別Windows字串資料型別
- js如何刪除字串中的空格JS字串
- 如何清除字串中的所有空格字串
- bat處理檔案BAT
- bat檔案處理BAT
- Java基礎-處理json字串解析案例JavaJSON字串
- Windows批處理(cmd/bat)常用命令小結WindowsBAT
- 10 Windows批處理之呼叫例程和bat檔案WindowsBAT
- Windows bat批處理刪除指定N天前的檔案WindowsBAT
- 編寫簡單的windows bat批處理指令碼檔案WindowsBAT指令碼