Buscar..


Introducción

Batch y Bash son bastante diferentes. Los indicadores de lote se indican con una / , mientras que los indicadores de bash usan un - . La capitalización es importante en bash, pero (casi) no en lote. Los nombres de variables por lotes pueden contener espacios, los nombres de variables bash no pueden. En última instancia, ambas son formas de manipular e interactuar con la línea de comandos. No es sorprendente que exista una superposición de tamaño razonable entre las capacidades de los dos sistemas.

Observaciones

  • bitsadmin está en desuso en favor de los BITS del cmdlet de PowerShell pero aún funciona a partir de Windows 10 versión 1607
  • certutil separa los pares de dígitos hexadecimales con un espacio, por lo que md5sum devolverá un valor de ejemplo de d41d8cd98f00b204e9800998ecf8427e , mientras que certutil muestra el mismo valor que d4 1d 8c d9 8f 00 b2 04 e9 80 09 98 ec f8 42 7e
  • Para cd en otro disco (por ejemplo, de C: a D :) se debe usar el indicador /d
  • del no puede borrar carpetas, use rm lugar
  • grep es mucho más poderoso que find y findstr , es casi no es justo para compararlos; find no tiene capacidades de findstr regulares y findstr tiene capacidades de findstr extremadamente limitadas ( [az]{2} no es una sintaxis válida, pero [az][az] es)
  • for bucles en el símbolo del sistema de Windows solo se pueden usar nombres de variables de un solo carácter; Esta es la única vez que los nombres de las variables por lotes distinguen entre mayúsculas y minúsculas
  • for bucles en el símbolo del sistema también use la variable forma %A lugar de %A% ; for bucles en lotes, use la variable forma %%A
  • md crea automáticamente los directorios principales necesarios, mientras que mkdir necesita la -p para hacerlo
  • rem no puede usarse como un carácter de comentario en línea a menos que esté precedido por un &
  • :: no se puede usar como un comentario en línea en absoluto, y tampoco se debe usar dentro de un bloque de código (conjunto de paréntesis)
  • Tenga en cuenta que algunos comandos de Windows como ping todavía se usan - como indicadores

Comandos de lotes y sus equivalentes de Bash

Lote Golpetazo Descripción
command /? man command Muestra la ayuda para el comando.
bitsadmin wget o curl Descarga un archivo remoto
certutil -hashfile file_name MD5 md5sum file_name Obtiene la suma de comprobación MD5 de file_name
cd pwd Muestra el directorio actual
cd directory cd directory Cambia el directorio actual al especificado.
cls clear Borra la pantalla
copy cp Copia un archivo o archivos de una ruta de origen a una ruta de destino
date date Muestra la fecha o la establece según la entrada del usuario.
del rm Borra un archivo o archivos
dir ls Muestra una lista de archivos y directorios en el directorio actual.
echo echo Muestra texto en la pantalla.
exit return Sale de un script o subrutina.
exit logout Cierra la línea de comandos o el terminal.
fc diff Compara el contenido de dos archivos.
find "string" file_name grep "string" file_name Busca nombre_archivo para la cadena
findstr "string" file_name grep "string" file_name Busca nombre_archivo para la cadena
for /F %A in (fileset*) do something for item in fileset*; do; something; done Hacer algo por cada archivo en un conjunto de archivos.
for /F %A in ('command') do something `command` Devuelve la salida de un comando.
for /L %A in (first,increment,last) do something for item in `seq first increment last`; do; something; done Comienza al principio y cuenta por incremento hasta que llega al último.
forfiles find Busca archivos que coincidan con ciertos criterios
if "%variable%"=="value" ( if [ "variable"="value" ]; then Compara dos valores
ipconfig ifconfig Muestra información de IP
md mkdir Crea nuevas carpetas
mklink ln -s Crea un enlace simbólico.
more more Muestra una pantalla de salida a la vez.
move mv Mueve un archivo o archivos de una ruta de origen a una ruta de destino
pause read -p "Press any key to continue" Pausa la ejecución del script hasta que el usuario presiona un botón
popd popd Elimina la entrada superior de la pila de directorios y va al nuevo directorio superior
pushd pushd Agrega el directorio actual a la pila de directorios y va al nuevo directorio superior
ren mv Renombra archivos
rem o :: # Comentarios una línea de código
rd rmdir Elimina directorios vacíos
rd /s rm -rf Elimina directorios independientemente de si estaban vacíos o no
set variable=value variable=value Establece el valor de la variable en valor.
set /a variable=equation variable=$((equation)) Realiza operaciones matemáticas (el lote solo puede usar números enteros de 32 bits)
set /p variable=promptstring read -p "promptstring" variable Obtiene la entrada del usuario y la almacena en variable
shift shift Desplaza los argumentos por 1 (o n si se proporciona)
sort sort Ordena la salida alfabéticamente por línea
tasklist ps Muestra una lista de procesos en ejecución.
taskkill /PID processid kill processid Mata el proceso con PID processid
time /t date Muestra la hora actual
type cat Muestra el contenido de un archivo.
where which Busca el directorio actual y el PATH para un archivo o comando
whoami id Muestra el nombre y el grupo del usuario actual.

Variables de lote y su equivalente de golpe

Lote Golpetazo Descripción
%variable% $variable Una variable regular
!variable! $variable Una variable dentro de un bloque de código cuando setlocal enabledelayedexpansion está setlocal enabledelayedexpansion
%errorlevel% o ERRORLEVEL $? Devuelve el estado del comando anterior: 0 si tiene éxito, 1 (o algo más) si no
%1 , %2 , %3 , etc. $1 , $2 , $3 , etc. Los parámetros dados a un guión.
%* $* Todos los parámetros dados a un script


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow