2 votos

Necesito .bat que hará que la carpeta se base en el nombre del archivo

Lo que necesito .el palo que se va a hacer carpetas basada en nombres de archivo y poner los archivos que hay dentro. Tengo los nombres de formato como este:

string1 - string2 - string3 - string2 - string3_number.jpg

Me parece fuera de comandos que va a tomar 3 primeras cuerdas como yo lo necesitaba, pero no puedo hacer que funcione más. Cuando trato de poner este comando en bat hace sólo una carpeta llamada "--".

for /F "tokens=1,2,3 delims=-" %%a in ('dir /B /A-D') do (set string1=%%a&set string2=%%b&set string3=%%c
md "%string1%-%string2%-%string3%")

poner @echo off y setlocal antes de este .bat no funcionan puede que alguien le ayude a hacer lo correcto por lo que hará carpetas basadas en nombres y poner los archivos en. Leer estos mensajes, pero todavía no puedo incluso hacer carpetas:

2voto

LotPings Puntos 62

Debido a la demora y expansión demorada que se requiere al configurar y usar var en a (bloque de código), no funciona.

Pero como no cambias los vars que no son necesarios en absoluto.

 @Echo off & Setlocal EnableDelayedExpansion

for /F "tokens=1,2,3 delims=-" %%a in ('dir /B /A-D') do (
  set "Folder=%%a-%%b-%%c"
  Rem to remove the trailing space from the Folder
  set "Folder=!Folder:~0,-1!"
  If not exist "!Folder!\" MD "!Folder!"
)
 

Para mover también los archivos que son el enfoque incorrecto, entonces primero debe iterar los archivos y segundo dividirlos como se indicó anteriormente.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: