簡體   English   中英

如何通過單個命令修剪前導和尾隨空格?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM