Ms-Dos - Mover PNG a carpeta con mismo nombre

 
Vista:
sin imagen de perfil

Mover PNG a carpeta con mismo nombre

Publicado por Angel (1 intervención) el 30/08/2022 08:10:01
Hola buenas noches, vengo a ver si me pueden ayudar ya que tengo imagenes PNG con el nombre de misma carpeta, solo quiero que cada imagen se vaya a la carpeta de mismo nombre, no todas las imagenes a una carpeta si no que img a carpeta con mismo nombre, he intentado

@echo off
set Dir_Orig=C:\Users\Shaw\Desktop\Mapas\52\1
set Dir_Dest=C:\Users\Shaw\Desktop\Mapas\52\1\carpeta

set Home=%CD%
cd %Dir_Orig%
for %%a in (*.png) do call :Mover "%%~na" "%%a"
cd %Home%
goto :EOF

:Mover
SET File=%1
SET File=%File:~1,-1%
SET Direc=%File:~0,2%
if not exist %Dir_Dest%\%Direc%\nul MD %Dir_Dest%\%Direc%\nul
move %2 %Dir_Dest%\%Direc%\.


goto :EOF

Pero al momento de ejecutar mueve las imegenes pero desaparecen y justo en la carpeta destino se crea un archivo llamado "ra" pero las imagenes no existen
Sin-titulo
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

Mover PNG a carpeta con mismo nombre

Publicado por Antoni Masana (811 intervenciones) el 06/09/2022 16:03:26
Este es el código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@echo off
set Dir_Orig=C:\Users\Shaw\Desktop\Mapas\52\1
set Dir_Dest=C:\Users\Shaw\Desktop\Mapas\52\1\carpeta
 
set Dir_Orig=C:\Tmp\Mapas\52\1
set Dir_Dest=C:\Tmp\Mapas\52\1\carpeta
 
set Home=%CD%
cd %Dir_Orig%
for %%a in (*.png) do call :Mover "%%~na" "%%a"
cd %Home%
goto :EOF
 
:Mover
   SET File=%1
   SET File=%File:~1,-1%
   SET Direc=%File:~0,2%
   if not exist %Dir_Dest%\%Direc%\nul MD %Dir_Dest%\%Direc%\nul
   echo move %2 %Dir_Dest%\%Direc%\.

En la fila 15 el SET asigna a File el valor "radar00" con las comillas.
En la fila 16 el SET asigna a File el valor radar00 SIN las comillas.
En la fila 17 el SET asigna a File el valor ra, los dos primeros caracteres del nombre.

Lo que entiendo que deseas es eliminar los dos últimos caracteres del nombre. Es decir:
- si el nombre es radar12 de como resultado radar
- si el nombre es semaforo34 de como resultado semaforo

La instrucción correcta es:
1
SET Direc=%File:~0,-2%

Ver ejemplo:

1
2
3
4
5
6
7
C:\Tmp>set File=radar00
 
C:\Tmp>echo %File:~0,2%
ra
 
C:\Tmp>echo %File:~0,-2%
radar


1
2
3
4
C:\Tmp>set File=semaforo34
 
C:\Tmp>echo %File:~0,-2%
semaforo

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