[英]How to trim leading and trailing white-spaces by a single command?
假設您在變量STRING
有一個字符串值,如何用一個命令(行)刪除開頭和結尾的空格?
例如,字符串為( _
代表制表符;雙引號僅用於說明,而不是字符串值的一部分):
" two spaces, trimmed text string, space-tab-space _ "
預期的輸出是(再次雙引號不是字符串的一部分):
"two spaces, trimmed text string, space-tab-space"
如何做到這一點?
在這種情況下,我所說的“空白”是指空格和(水平)制表符。
不可能在一行中同時修剪空格和制表符,但是對於空格,您可以使用以下技巧 :
@echo off
setlocal EnableDelayedExpansion
set "x= two spaces, trimmed text string, space-space-space "
echo "%x%"
rem The single line:
set "word=%x: =" & (if "!word!" neq "" set "x2=!x2! !word!") & set "word=%" & set "x2=!x2:~1!"
echo "%x2%"
僅關於前導空格,以下代碼有效(_表示TAB ):
set "STRING= two spaces, trimmed text string, space-tab-space _ "
rem no "delims=" option given, so defaulting to spaces and tabs:
for /F "tokens=* eol= " %%S in ("%STRING%") do set "LEFTTRIMMED=%%S"
echo "%LEFTTRIMMED%"
但是,尾隨的空格仍然存在。 但是可以通過此線程中顯示的方法將其刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.