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刪除空格
相關文章
- python如何去掉字串中的空格Python字串
- windows bat系列7:for處理案例二 產生等差序列WindowsBAT
- JS去掉字串空格JS字串
- Python如何去掉字串空格?Python字串
- windows bat系列9:for處理案例三 單行按指定分隔符分割WindowsBAT
- bat 批處理字串操作BAT字串
- js去掉字串中所有的空格JS字串
- Python如何去掉字串所有空格?Python字串
- Python中去掉字串中空格的方法有哪些?Python字串
- windows 處理bat連線本地mysqlWindowsBATMySql
- CSS 的空格處理CSS
- 去掉字串前後所有空格的正規表示式字串
- Java入門教程四(字串處理)Java字串
- Java基礎-處理json字串解析案例JavaJSON字串
- 05 Windows批處理中的字串和布林資料型別Windows字串資料型別
- 10 Windows批處理之呼叫例程和bat檔案WindowsBAT
- shell去掉每行結尾的空格
- C++中的字串編碼處理C++字串編碼
- JavaScript將字串中的多個空格縮減為一個空格JavaScript字串
- MongoDB for Windows使用批處理檔案啟動閃退之空格惹的禍MongoDBWindows
- 字串處理字串
- bat批處理使用ren批次重新命名檔案,比如批次去掉檔名稱的前4位BAT
- JavaScript怎麼去掉結尾空格JavaScript
- SQL中的常用的字串處理函式大全SQL字串函式
- bat批處理常用指令碼BAT指令碼
- 替換字串中的空格《演算法很美》字串演算法
- 簡單的字串處理字串
- Windows Ping的結果顯示每次ping的時間的bat批處理指令碼WindowsBAT指令碼
- Visual Studio程式碼去掉自動空格
- Windows批處理中的變數和值Windows變數
- JavaScript中的圖片處理與合成(四)JavaScript
- shell 給字串增加單引號,並移除字串中多餘的空格字串
- JavaScript常用的字串處理方法JavaScript字串
- javascript將字串中的多個空格替換為一個空格的正則例項JavaScript字串
- 【劍指offer】【2】字串的空格字串
- js替換字串裡的空格JS字串
- 第五章 字串專題 ---------------- 5.4 實踐:替換字串中的空格字串
- 題解1196:去掉空格 (C語言描述)C語言