« DATE/TIMEコマンドやDATE/TIME環境変数の形式は地域に依存します。 | トップページ | Adobe Reader 7.0のPDFファイルの関連付けを改善する。 »

2007年1月 6日 (土)

バッチファイルで行末の空白を削除する。

CALLと%*で行頭と行末の空白を削除します。

SET a=   aaa  bbb   
ECHO "%a%"
CALL :SUB %a%
ECHO "%a%"
GOTO :EOF
:SUB
SET a=%*

行末の空白を削除する正攻法は、

SET a=   aaa  bbb   
ECHO "%a%"
:LOOP
if "%a:~-1%"==" " (
SET a=%a:~0,-1%
GOTO LOOP
)
ECHO "%a%"

この場合、遅延展開は特に必要ありません。

« DATE/TIMEコマンドやDATE/TIME環境変数の形式は地域に依存します。 | トップページ | Adobe Reader 7.0のPDFファイルの関連付けを改善する。 »