1

DOSバッチスクリプトで文字列から引用符を取り除く方法を知っている人はいますか?文字列置換機能を使用すると文字を削除するのは簡単ですが、引用符(または感嘆符)を削除するのは少し難しいようです。これが私が動かそうとしている私のテストスクリプトです:

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
echo.
set "NAME=Izomorphius"
call :append NAME " is my dear friend."
echo Message: %NAME%
echo.
goto :end
:: Functions
:append @varname @value
IF NOT "%3"=="" (
  echo Too many arguments to function.
)
set vara=%1
set stra=%2
set stra=%stra:""=%
set "%1=!%1! %2"
exit /B 0
:end
pause

このスクリプトの出力は次のとおりです。

Message: Izomorphius " is my dear friend."
4

1 に答える 1

2

修飾子は~、パラメンターから囲んでいる引用符を取り除きます。HELP CALL修飾子の完全なリストについては、コマンドプロンプトから入力してください。同じ修飾子は、FOR変数にも使用できます。

@echo off
setlocal enableDelayedExpansion
echo.
set "NAME=Izomorphius"
call :append NAME " is my dear friend."
echo Message: %NAME%
echo.
goto :end

:: Functions

:append @varname @value
IF NOT "%~3"=="" echo Too many arguments to function.
set "%~1=!%~1! %~2"
exit /B 0

:end
pause
于 2012-11-02T18:55:40.280 に答える