Archivo bat para crear archivos que contengan texto, que permita crear su nombre con espacios

Archivo bat para crear archivos que contengan texto, que permita crear su nombre con espacios.

Buenas tengo esta línea de ordenes, pero no me deja crear el nombre del archivo con espacios,

Además la primera línea de texto me la elimina, tengo que empezar desde la segunda.

Bueno lo más importante es poder crearles nombres al archivo con espacios.

Muchas Gracias..

@echo off
Echo off
:Menu
Title Creador de texto

Echo Nombre Del Archivo

set /p carp=Como desea llamar el archivo ?
set llama=%carp%

echo Tipo archivo
set /p type=Escribe el tipo de archivo ?
set tp=%type%

Echo Texto
set /p text=escribe el texto .
copy con %llama%.%tp%
Pause

Echo 1.- Ejecutar el archivo creado
echo 2.- Salida
set /p run=Desea ejecutar el archivo ?

if %run%==1 goto Ejecutar
if %run%==2 goto Salir

:Ejecutar
Start %llama%.%tp%
echo Volver a menu presione tecla
pause
goto menu

:Salir
msg * Adios %date%
exit

Archivo bat para crear archivos que contengan texto, que permita crear su nombre con espacios.

Buenas tengo esta línea de ordenes, pero no me deja crear el nombre del archivo con espacios,

Además la primera línea de texto me la elimina, tengo que empezar desde la segunda.

Bueno lo más importante es poder crearles nombres al archivo con espacios.

1 respuesta

Respuesta
1

Para que puedas trabajar con nombres de archivos que incluyan espacios debes incluir entre comillas las referencias a ellos (esto es general del MSDOS actual, también suele ser necesario en comandos directos). En cuanto a la no incorporación de la primera linea es consecuencia de que se "la lleva" la variable %texto%. Por último si bien un start a un nombre de archivo sin espacios te abre el bloc de notas (notepad) para ese archivo, si tiene espacios no funciona así y tienes que invocar explícitamente al notepad.

En resumen, te sugiero los siguientes cambios:

set /p text=escribe el texto .  -> echo escribe el  texto . 

Copy con %llama%.%tp% -> copy con "%llama%.%tp%"

Start %llama%.%tp% -> start notepad "%llama%.%tp%"

Prueba y nos cuentas.

Buenas, no se si halla entendido el cambio que tenia que hacer

@echo off
:menu
title Creador de texto

Echo Nombre Del Archivo

set /p carp=Como desea llamar el archivo ?
set llama=%carp%

echo Tipo archivo
set /p type=Escribe el tipo de archivo ?
set tp=%type%


echo Texto
set /p text=escribe el texto .->echo escribe el texto .

copy con "%llama%.%tp%"-> copy con "%llama%.%tp%"  

REM  1. PRUEBA EN ESTA LINEA = LAS COMILLAS "" EN "%llama%.%tp%" ME PERMITIERON PONER EL NOMBRE DEL ARCHIVO CON ESPACIOS

pause


echo 1.- Ejecutar el archivo creado
echo 2.- Salida
set /p run=Desea ejecutar el archivo ?

if %run%==1 goto Ejecutar
if %run%==2 goto Salir

:Ejecutar
Start %llama%.%tp%->start notepad "%llama%.%tp%"

REM 2. PRUEBA = SE ME ABRE UNA VENTANA DE CMD, ADEMAS CON NOTEPAD SI QUIERO HACER UN ARCHIVO DE TIPO BAT,XML, JAVA,PSC ETC ME DARIA PROBLEMAS

REM EL PROBLEMA DE LOS ESPACIOS LO TENGO CLARO PERO AL EJECUTARLO DA PROBLEMAS

REM ASI COMO ESTA EL CODIGO ME CREA DOS ARCHIVO  ECHO,COPY SIN EXTENSION

echo Volver a menu presione tecla
pause
goto menu

:Salir
msg * Adios %date%
exit

Como ya me has calificado la consulta no sé si al final entendiste lo que te quería decir. Pensé que resultaría más claro de esa forma, pero lo que estaba intentando explicarte era que tenías que sustituir la instrucción del lado izquierdo de la flecha (la que estaba en tu bat original) por la que estaba en el lado derecho. El bat corregido quedaría así:

@echo off
Echo off
:Menu
Title Creador de texto
Echo Nombre Del Archivo
set /p carp=Como desea llamar el archivo ?
set llama=%carp%
echo Tipo archivo
set /p type=Escribe el tipo de archivo ?
set tp=%type%
Echo Texto
Echo escribe el texto .
copy con "%llama%.%tp%"
Pause
Echo 1.- Ejecutar el archivo creado
echo 2.- Salida
set /p run=Desea ejecutar el archivo ?
if %run%==1 goto Ejecutar
if %run%==2 goto Salir
:Ejecutar
Start notepad "%llama%.%tp%"
echo Volver a menu presione tecla
pause
goto menu
:Salir
msg * Adios %date%
exit

No entiendo los comentarios con REM 2 que introduces. Si no pones NOTEPAD y el nombre del archivo tiene espacios se te abre una ventana de CMD, pero si lo pones como indicaba debe funcionar bien y yo no he tenido problemas ni con java, ni con bat, ni con xml.

Buenos días,

Gracias por responder, me ha funcionado pero, pero a la hora de ejecutarlos archivos de extensiones diferentes de txt. Me las ejecuta con el Notepad.

Lo que quiero decir es que si quiero crear un archivo bat, me lo abre con el notepad, y eso no es lo que deseo. Quiero que lo ejecute. Como en el archivo origen. Con la diferencia de que este no me permitía poner nombres con espacios y me eliminaba la primera línea.

Espero me halla hecho entender.

Para ejecutar un bat se puede hacer con CALL, o simplemente, con el nombre del bat. No acabo de entender por qué quieres hacerlo con START

¡Gracias!

No había probado con con CALL, no nuevo en esto. Se ha solucionado mi duda por completo.

Muchas gracias, por compartir su conocimiento. Hasta pronto :)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas