Ms-Dos - seleccionar 1er caracter del nombre de archivo.

 
Vista:

seleccionar 1er caracter del nombre de archivo.

Publicado por manuel (4 intervenciones) el 16/04/2013 21:54:56
Buenas tardes,

Soy nuevo en los programas .bat y quisiera su ayuda para hacer un bat que haga lo siguiente

seleccionar el primer caracter del nombre de un archivo para compararlo y dependiendo de su valor tomar una accion.

ejemplo:

archivos: C_file001.pdf
S_file001.pdf

Si el primer caracter es "C" ir a la rutina A, si es "S" ir a la rutina B


Gracas por su ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

seleccionar 1er caracter del nombre de archivo.

Publicado por Antoni Masana (811 intervenciones) el 17/04/2013 06:44:57
Un ejemplo simple: Es un BAT en el que pasas en nombre del fichero por parametro, detecta mayuscula y minisculas ya que el MS-DOS no es sensible a esto.

Funciona en versión Win.XP y posteriores.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@echo off
 
if "%1" == "" goto:EOF
 
set file=%1
set char=%file:~0,1%
 
if "%char%" == "C" goto Ini_C
if "%char%" == "c" goto Ini_C
if "%char%" == "S" goto Ini_S
if "%char%" == "s" goto Ini_S
                   goto:EOF
 
:Ini_C
   echo.
   echo.  Empieza por C
   echo.
   goto:EOF
 
:Ini_S
   echo.
   echo.  Empieza por S
   echo.
   goto:EOF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

seleccionar 1er caracter del nombre de archivo.

Publicado por manuel (4 intervenciones) el 18/04/2013 00:26:30
Antoni gracias por tu ayuda, a las intrucciones que enviaste les agregue algunas nuevas para probar, sin embargo parece que no lee los archivos en la carpeta, puse algunas pausas pero no se detiene, me puedes decir que le falta?

Gracias nuevamente

Archivos:
C_file_001.pdf
S_file_002.pdf
etc.

@echo on

set fecha=%date%
set dia=%fecha:~0,2%
set mes=%fecha:~3,2%
set year=%fecha:~8,2%
set nuevoarchivo="%%~nx_%year%-%mes%-%dia%.pdf"
cd C:\ExtracTest
if "%1" == "" goto:EOF

pause
set file=%1
set char=%file:~0,1%
pause
if "%char%" == "C" goto Ini_C
if "%char%" == "c" goto Ini_C
if "%char%" == "S" goto Ini_S
if "%char%" == "s" goto Ini_S
goto:EOF

:Ini_C
pause
echo.
echo. Empieza por C
echo. for /R %%x in (*.pdf) do RENAME "%%x" %nuevoarchivo%
goto:EOF

:Ini_S
echo.
echo. Empieza por S
echo.
goto:EOF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

seleccionar 1er caracter del nombre de archivo.

Publicado por Antoni Masana (811 intervenciones) el 18/04/2013 06:34:15
El ser humano tiene la costumbre de no saber explicarse, yo el primero.

Por lo que deduzco de los datos que has puesto es que no entiendo que pretendes hacer.

En primer lugar para que funcione debes llamar al BAT pasándole un nombre de fichero:

1
C:\> Mi_BAT.bat c_file_001.dbf


La línea IF "%1" == "" GOTO:EOF lo que hace es finalizar si no hay parámetros.

¿Qué pretendes hacer en el FOR? renombrar todos los archivos con el mismo nombre.

Me falta algo para entender que deseas hacer.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar