Reputation: 3970
I would like to pass the & in a value as a parameter. In the example code below, I can echo FILE_NAME successfully, but how do I pass it as a parameter to the :TEE label?
@ECHO OFF
CLS
SETLOCAL ENABLEDELAYEDEXPANSION
SET FILE_PATH=C:\TEMP\FILE^&NAME.TXT
REM THIS WORKS
ECHO !FILE_PATH!
REM THIS DOES NOT WORK
CALL :TEE !FILE_PATH!
GOTO :EOF
:TEE
FOR /F "TOKENS=*" %%Z IN ("%*") DO (
ECHO %%Z
> CON ECHO.%%Z
>> "!LOG_FILE!" ECHO.%%Z
GOTO :EOF
)
GOTO :EOF
Upvotes: 0
Views: 68
Reputation: 80023
@ECHO OFF
CLS
SETLOCAL ENABLEDELAYEDEXPANSION
SET FILE_PATH=C:\TEMP\FILE^&NAME.TXT
REM THIS WORKS
ECHO !FILE_PATH!
REM THIS DOES NOT WORK
CALL :TEE "%FILE_PATH%"
GOTO :EOF
:TEE
FOR /F "TOKENS=* USEBACKQ" %%Z IN ('%*') DO (
ECHO %%~Z
> CON ECHO.%%~Z
>> "!LOG_FILE!" ECHO.%%~Z
GOTO :EOF
)
GOTO :EOF
Yes, it is - here's one way
Upvotes: 3