BandaAncha

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate

Cortar cadena de texto en variable en MS DOS

alicante1984

Estoy intentando automatizar procesos, y el caso es que necesito una función para MS DOS.

Necesito que a partir de una cadena que se le pasa a un archivo bach de MS DOS, lo parta como quiera. Especialmente necesito que quite los últimos 4 caracteres (La variable es el nombre de un archivo de Windows con su punto y su extensión)

Lo he intentado con una versión de prueba de un CMD comercial, pero no rula… (WinOne)

Más o menos la sintaxis sería esta:

set archivo=%1
//Sacamos el tamaño de la cadena
set tam=STRSIZE %archivo%
set nuevotam=%tam%-4
//Nos devuelve una cadena desde inicio hasta fin
set nombre=SUBSTR 1 %nuevotam% %archivo%
echo %nombre%

Pero claro, en msdos no existe ni SUBSTR ni STRSIZE.

He intentado buscar comandos alternativos durante varias horas pero nada… Y encima la versión de pago esta no funciona bien… :(

¿Alguien sabe alguna forma de almacenar una variable, y que de esa variable se cojan solamente x caracteres?

Este tema está cerrado a nuevas respuestas. Abre un nuevo tema para retomar la conversación.
Frankie2004

Sería mejor que releyeses la sintaxis del comando SET

También puede especificar subcadenas para una expansión.

%PATH:~10,5%

expandirá la variable de entorno PATH, y usará sólo los 5 caracteres a partir del décimo primer carácter (desplazamiento 10) del resultado expandido. Si la longitud no se especifica, se utilizará el resto del valor de la variable. Si algún número (desplazamiento o longitud) es negativo, entonces el número usado es la longitud del valor de la variable de entorno añadido al desplazamiento o longitud especificados.

%PATH:~-10%

extraerá los 10 caracteres de la variable PATH.

%PATH:~0,-2%

extraerá todo menos los 2 últimos caracteres de la variable PATH._

🗨️ 1
alicante1984

Frankie2004 eres mi Dios del ms-dos :D

Me ha funcionado perfectamente!! :D

Muchiiiiiiiiiiiiisimas Gracias :)