Aquesta és una revisió antiga del document
CMD en Windows
parámetros .bat
https://ss64.com/nt/syntax-args.html
- %1..%9 : parámetros por orden (solo se pueden referenciar 9 parámetros directamente)
- %0 : pathname del propio script
- %* : todos (hasta 255)
- si el parámetro es un nombre de fichero, se pueden usar los siguientes modificadores:
- %~f1 : path completo (unidad-carpetas-fichero ≡ fully qualified name)
- %~d1 : unidad
- %~p1 : carpetas
- %~n1 : nombre archivo sin extensión ni path
- %~x1 : extensión
- %~s1 : modifica los modificadores f,n,s,x para usar nombres 8.3
- %~1 : elimina comillas exteriores
- otras maneras:
- set _string=#%_string%#
- set _string=%_string:«#=%
- set _string=%_string:#»=%
- set _string=%_string:#=%
- reemplazo de todas las comillas:
- set _variable=%_variable:«=%
- %~a1 : atributos
- %~t1 : fecha/hora
- %~z1 : tamaño
- %~$PATH:1 : busca en el PATH para expandir %1 a path completo ≡ fully qualified name
fecha
set fecha=%date:~6,4%%date:~3,2%%date:~0,2%
estructura FOR e IF (en este caso, usando el valor de las colunas del comando ''net use''
for /F "tokens=1-3" %%a in ('net use') do ( if /i %%a==Disconnected net use /delete %%b if /i %%a==Unavailable net use /delete %%b )
recorrido de ficheros con "manipulación"
- ojito a como se saca el nombre de la variable descartando la extensión - mirado en el
help for
de ms-dos - como se coge la columna que nos interesa
@echo off for /f "tokens=4" %%a in ('dir hesp*.dns') do ( rem echo %%~na nslookup -q=NS %%~na >> hesperia.txt )
ejecutar comando sobre una lista (de lo que sea) almacenada en un fichero "externo"
- en este caso, nombres de máquinas
- lista.txt
agarcia pwillemsen bcarreno matorres apandoo pablo-perez
ejecutar comandos FTP
- utilizar ''> ftp -s:comandosftp.txt <servidorftp>
- hay que cambiar el <user> y <password> del fichero TXT
- comandosftp.txt
<user> <password> binary lcd d:\tmp\ftp-remoto cd tmp prompt off mget * bye