in

cadena: ¿Por qué CALL SET funciona de manera diferente en un archivo CMD de Windows que en un archivo .CMD?

apple touch icon@2

Estoy intentando usar la CMD de Windows. SET Versiones de manipulación de cadenas de forma programática. Las dos versiones de SET están …

SET New_String=%String:Old_Text=New_Text%

En variable String reemplazar Old_Text con New_Text, y devuelve el resultado en la variable New_String.

SET New_String=%String:~Number_Of_Chars_To_Skip,Number_Of_Chars_To_Keep%

En variable String extraer Number_Of_Chars_To_Keep después de saltar Number_Of_Chars_To_Skip, y devuelve el resultado en la variable New_String

Old_Text, New_Text, Number_Of_Chars_To_Skip, Number_Of_Chars_To_Keep todos deben ser literales, no variables. Entonces, el uso típico sería así …

SET New_String=%String:abcd=fghi%
SET New_String=%String:~2,4%

Un uso como este no funcionará …

SET New_String=%String:%Old_Text%=%New_Text%%
SET New_String=%String:~%Skip_Count%,%Keep_Count%%

Para hacer los dos anteriores SETs tienes que CALL SET, igual que …

CALL SET New_String=%%String:%Old_Text%=%New_Text%%%
CALL SET New_String=%%String:~%Skip_Count%,%Keep_Count%%%

Entonces, tengo este siguiente fragmento de código de prueba …

SET "Chars=" & SET "String=0123456789" & SET "Skip=1" & SET "Keep=3"
CALL SET Chars=%%String:~%Skip%,%Keep%%%
ECHO Chars="%Chars%" (expected to be "123")

Desde un archivo CMD esto funciona correctamente. los CALL se ha expandido a SET Chars=%string:~1,3% y ha devuelto el resultado esperado 123. Pero, y un gran pero es, desde una ventana CMD (con las mismas variables) exactamente lo mismo CALL SET devuelve esto …

%0123456789Skip%,3%%

¿Por qué no funciona esto en una ventana CMD? Investigué y no encontré ninguna información que explique por qué.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Python – Texto de Tkinter

VtULtP5JLmG3aiBhvdcfeV 1200 80

Black Manta obtiene su propia serie DC de los creadores de Bitter Root & Bitch Planet