2012-02-19 21 views
8

Me gustaría concatenar una variable con una cadena.Cómo concatenar variable con cadena o variable en el archivo por lotes

En la línea 7 a la línea 11 trato de concat! Algunavariable! con una cadena o con la variable %% P.
Pero esto no parece funcionar.

I.e. tiene el archivo 0_1_en.pdf en la carpeta actual.
La secuencia de comandos abrevia el nombre del archivo al primer dígito.

Después me quieren crear una nueva variable con una cadena, por ejemplo:
"GEN 0" where 0 is the !sPDFName!

código completo:

1 SETLOCAL EnableDelayedExpansion 
2 for /f "delims=" %%P in ('dir /b *.pdf') do (
3 SET "sPDFName=%%~nxP" 
4 echo "!sPDFName:~0,1!" 
5 IF "!sPDFName:~0,1!"=="1" (SET "sPDFName=!sPDFName:~0,1!") 
6 IF "!sPDFName:~0,1!"=="0" (SET "sPDFName=!sPDFName:~0,1!") 
7 SET tempStr=GEN !sPDFName! 
8 SET myvar=!myvar! %%P 
9 
10 echo "%myvar%" 
11 echo "%tempStr%" 
12 ::echo "!sPDFName!" 
13 pause 
14 for /f "delims=" %%H in ('dir /b *.html') do (
15 IF "!sPDFName:~-0!"=="!%%H:~0,1!" echo %%H 
16 ) 
17) 

Respuesta

8

Las obras de concatenación! Pero tu eco falla.

Como se encuentra en un bloque de comandos (paréntesis), todas las variables de porcentaje se expanden antes de que se ejecute el bloque, por lo que la salida de echo "%myvar%" es el contenido de myvar antes de ingresar al FOR-Loop.

Pero usted sabe la manera correcta ya, mediante la expansión retardada (con !)

lo tanto, su código debería ser similar

SETLOCAL EnableDelayedExpansion 
for /f "delims=" %%P in ('dir /b *.pdf') do (
    SET "sPDFName=%%~nxP" 
    echo "!sPDFName:~0,1!" 
    IF "!sPDFName:~0,1!"=="1" (SET "sPDFName=!sPDFName:~0,1!") 
    IF "!sPDFName:~0,1!"=="0" (SET "sPDFName=!sPDFName:~0,1!") 
    SET tempStr=GEN !sPDFName! 
    SET myvar=!myvar! %%P 

    echo "!myvar!" 
    echo "!tempStr!" 
    ::echo "!sPDFName!" 
    pause 
    for /f "delims=" %%H in ('dir /b *.html') do (
    IF "!sPDFName:~-0!"=="!%%H:~0,1!" echo %%H 
) 
) 
+0

Gracias, esto fue estúpido de mi parte, a pasarlo por alto – user1141649

Cuestiones relacionadas