batch-file
Diferencias entre Batch (Windows) y Terminal (Linux)
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
-
bitsadminestá en desuso en favor de los BITS del cmdlet de PowerShell pero aún funciona a partir de Windows 10 versión 1607 -
certutilsepara los pares de dígitos hexadecimales con un espacio, por lo quemd5sumdevolverá un valor de ejemplo ded41d8cd98f00b204e9800998ecf8427e, mientras quecertutilmuestra el mismo valor qued4 1d 8c d9 8f 00 b2 04 e9 80 09 98 ec f8 42 7e - Para
cden otro disco (por ejemplo, de C: a D :) se debe usar el indicador/d -
delno puede borrar carpetas, usermlugar -
grepes mucho más poderoso quefindyfindstr, es casi no es justo para compararlos;findno tiene capacidades defindstrregulares yfindstrtiene capacidades defindstrextremadamente limitadas ([az]{2}no es una sintaxis válida, pero[az][az]es) -
forbucles 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 -
forbucles en el símbolo del sistema también use la variable forma%Alugar de%A%;forbucles en lotes, use la variable forma%%A -
mdcrea automáticamente los directorios principales necesarios, mientras quemkdirnecesita la-ppara hacerlo -
remno 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
pingtodaví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