= Windows: CMD {{tag>windows}} * [[windows:links:start|]] == shutdown * restart: ''/r'' * shutdown: ''/s'' * force: ''/f'' * temporizador: ''/t '' (incluye ''/f'') * cancelar: ''/a'' * /via: [[https://www.howtogeek.com/512012/how-to-shut-down-your-windows-10-pc-using-command-prompt/]] == 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 agarcia pwillemsen bcarreno matorres apandoo pablo-perez @echo off FOR /F "usebackq" %%I IN (lista.txt) DO ( rem PING -n 1 -w 100 %%I rem tasklist /s %%I /FI "IMAGENAME eq Skype" echo %%I tasklist /s %%I ) pause == ejecutar comandos FTP * utilizar ''> ftp -s:comandosftp.txt * hay que cambiar el y del fichero TXT binary lcd d:\tmp\ftp-remoto cd tmp prompt off mget * bye == ejecución secuencial ejecuta un programa GUI y al salir, ejecuta el **logoff** rem /MAX: maximiza /WAIT: espera al cierre del programa start /D /MAX /WAIT PROGRAM.EXE logoff