Buenas, por empezar, mucho de Batch no conozco, lo minimo asi que sepan entender.
lo mio es VB.
Ahora, la pregunta es, de que forma podria hacer un batch preguntando si en caso de que exista un archivo con un nombre especifico en un ruta, haga ciertas funciones como renombrar y mover o si el archivo tiene otro nombre, haga las mismas funciones, por ejemplo:
Si archivo es igual a MI ARCHIVO ABC entonces
renombrar
mover
ejecuto un script de un programa
mover
renombrar
Si archivo es igual a MI ARCHIVO 123 entonces
renombrar
mover
ejecuto un script de un programa
mover
renombrar
exit
El caso es que no se si usar "If exist" or "if archivo = then" (aunque tampoco entiendo mucho los condicionales de batch o como usar el "exist") en este caso, como seria que debo hacer el batch para preguntar si el nombre de un archivo en una ruta es igual a "XXX" entonces hacer ciertas funciones "o" si es igual a "XXXXX" hacer ciertas funciones.
Gracias de antemano.
Viniendo de VB no debería ser dificil acostumbrarse a la sintaxis de Batch, símplemente de VB quédate con el "IF" y el "ELSE", y olvídate de todo lo demás como "then", "and", "or", o "elseif".
Primero de nada deberías leer la ayuda de cada comando en la consola...
IF /?
Rename /?
Move /?
:: Comprobar si un archivo existe
Set "Archivo=C:\archivo.txt"
If exist "%Archivo%" (
REM El archivo existe...
) ELSE (
REM El archivo no existe...
)
:: Comparar un string
Set "Archivo=C:\archivo.txt"
If /I "%Archivo%" EQU "C:\MI ARCHIVO 123.txt" (
REM El nombre es igual...
) ELSE (
REM El nombre no es igual...
)
:: Comprobar si un archivo existe y comparar el nombre
Set "Archivo=C:\archivo.txt"
If exist "%Archivo%" If /I "%Archivo%" EQU "C:\MI ARCHIVO 123.txt" (
Rename "%Archivo%" "otro nombre"
move "%Archivo%" "otro nombre"
"ruta\nombre script.bat"
) ELSE (
REM El archivo no existe o el nombre no es igual...
)
Saludos.
hmm gracias de todas formas y ya mire un poco mejor los ejemplos que da el cmd.
asi quedaria:
@echo off
cd..
Set "Mapa=Dota v6.77c.w3x"
Set "MapaAI=Dota v6.77c AI 1.4b Rev2.w3x"
If exist "%mapa%" (
Ren "%Mapa%" "File.mpq"
Move "File.mpq" "Files\"
Files\Winmpq.exe S file05
move "Files\File.mpq" ".\"
Ren "File.mpq" "%Mapa%"
) Else (
Ren "%MapaAI%" "File.mpq"
Move "File.mpq" "Files\"
Files\Winmpq.exe S file05
move "Files\File.mpq" ".\"
Ren "File.mpq" "%MapaAI%"
)
exit
Pero como seria en caso de que no exista ninguno de los 2?, ahi toma por seguro que si no esta el primero, el segundo hace las funciones, agrego otro "IF" ?
Citar, agrego otro "IF" ?
Podrías, pero no es del todo necesario...
@echo off
cd..
If exist "Dota v6.77c.w3x" (Set "Mapa=Dota v6.77c.w3x")
If exist "Dota v6.77c AI 1.4b Rev2.w3x" (Set "Mapa=Dota v6.77c AI 1.4b Rev2.w3x")
If Defined MAPA (
Ren "%Mapa%" "File.mpq"
Move "File.mpq" "Files\"
Files\Winmpq.exe S file05
move "Files\File.mpq" ".\"
Ren "File.mpq" "%Mapa%"
)
exit
saludos
Muchas gracias Electro H. Me vino muy bien la ayuda.