archivos por lotes de DOS para convertir a Shell script

  

un poco de secuencias de comandos de aprendizaje sobre los programadores de PC estaban corriendo DOS. De hecho, el lenguaje DOS archivo por lotes paralizado todavía puede escribir algunos de los scripts más potentes a la Aunque por lo general, necesitan la ayuda de herramientas externas. por lo tanto, a veces, tenemos que convertir el antiguo archivo por lotes de DOS para los scripts de shell UNIX. en general, este tipo de cosas no es difícil de hacer, porque lotes de DOS el procesamiento de una operación de archivo es limitado, pero un subconjunto equivalente de la secuencia de comandos shell.

tabla L-1. archivo por lotes palabra clave /Variable /operador, y equivalente símbolo shell

operador de archivo por lotes Shell script símbolo equivalente significa% $ de línea de comandos parámetro prefijo /- opción de comando etiquetada \\ /separador de ruta de directorio == = (igual a) == comparación de cadenas de prueba = (desigual) caracter !!! prueba de comparación de cadenas |  |  Pipeline @ conjunto + v no se imprime la orden actual * * nombre de archivo " comodín " > > redirección de archivos (cubriendo) > > > > redirección de archivos (adicional) < < redirigir stdin% ! VAR% $ VAR variables de entorno REM # comentario no niega NUL /dev /null " agujero negro " se usa para prevenir un comando de eco de salida de eco de impresión (Bash tiene más opciones) echo echo imprimir líneas en blanco echo off set + v. no imprima el comando subsiguiente para %% var, en (lISTA) hacer por var en [lista]; hacer " " etiqueta bucle: hay un equivalente etiqueta (no deseada) GOTO ningún equivalente (utilizando la función) para saltar a la secuencia de comandos a otra ubicación pausa pausa dormir o esperar un caso Choice tiempo o seleccione la opción de menú si si si la declaración condicional si existen nombre del archivo si ya existe un archivo [nombre de archivo -e] prueba si% N == si !! [-z " $ N ''] parámetro " N " si hay o no llamada de comando fuente o (operador de punto) ". incluyen " otro comando script /C comando fuente o (operador de punto) ". incluyen " otro script (y la llamada misma) exportar conjunto proporcionó una entorno de cambio de desplazamiento variable dejó Desplazamiento de línea de comandos -lt lista de argumentos SGN o -gt (plástico) el código de salida símbolo ERRORLEVEL $ CON entrada estándar "? consola de " (entrada estándar) PRN /dev /lp0 (genéricos) dispositivos de impresión LPT1 /dev /lp0 primera el aparato de impresión COM1 /dev /ttyS0 primer puerto serie

--------------------------------- -----------------------------------------------

archivo por lotes DOS típicamente contiene comandos. hay que convertirlo al UNIX mandatos equivalentes, por lo que podemos convertir un archivo por lotes en un archivo de secuencia de comandos shell.

------- -------------------------------------------------- -----------------------

mesa L-2. DOS y UNIX equivalentes comando
comando

DOS de comandos de UNIX efecto equivalente ASIGNAR archivo de enlace ln o ATTRIB directorio chmod modifican los permisos de archivos de CD cd reemplazar directorio CHDIR cd reemplazar CLS directorio clara clara COMP pantalla diff, comunicación, archivo cmp compara copia de archivos cp copia Ctl-C-C Ctl interrupción (señal) CTL-Z EOF (final del archivo) D-CTL dEL rm borrar archivos rm-rf DELTREE eliminar de forma recursiva el directorio DIR ls -l para listar el contenido ERASE rm borrar archivos de salida sALIDA vuelta El actual proceso de FC de comunicaciones, archivo cmp compara FIND grep para buscar cadenas en los archivos de MD mkdir crear un nuevo directorio MKDIR mkdir crear una nueva ruta del directorio de paginación más archivos de texto más mover mover PATH $ PATH archivo ejecutable mv de REN de cambio de nombre mv (mover) Cambiar el nombre de cambio de nombre mv RD (móvil) rmDir eliminar el directorio rmdir rmdir eliminar la copia de archivos

archivo de salida tipo de sistema de visualización de la fecha gato Ordenar ordenada directorios de archivos tiempo para la salida estándar XCOPY cp (extendida) ----- -------------------------------------------------- -------------------------

Nota de hecho, casi todos los operadores de UNIX y de concha, hay una gran cantidad de mando opciones, contraste y archivos por lotes de DOS, que son mucho más potente. muchos archivos por lotes de DOS necesitan depender de ayudas, como ask.com, que es similar a un comando mucho peor que una copia de lectura.

DOS comodines para el apoyo a la extensión de nombre de archivo es muy limitado y lejos de ser completa, y sólo reconoce * ?.

convertir a sehll DOS script de archivo por lotes, por lo general es una cosa muy simple, pero conversión Fruta por lo general son mejores que el archivo original del lote.

--------------------------------- -----------------------------------------------
.

ejemplos de L-1 VIEWDATA.BAT: archivo por lotes DOS

1 REM ViewData 2 3 REM ejemplo " inspirado; DOS POWERTOOLS " preparación de 4 REM PAUL Somerson 5 6 7 @ECHO OFF 8 9 ! SI% 1 == GOTO ViewData 10 REM Si no hay línea de comando argumentos ... 11 Find "% 1 " las líneas que coincidan C :! \\ BOZO \\ BOOKLIST.TXT 12 GOTO 13 EXIT0 cadena REM impresos, y luego salir. 14 15: 16 ViewData TIPO C: \\ BOZO \\ BOOKLIST.TXT |  Más de 17 REM mostrar todo el documento, un tiempo de 18 19 :. EXIT0

----------------------------- -------------------------------------------------- -

script de conversión hizo algunas mejoras

------------------------------. --------------------------------------------------

ejemplos de L-2 viewdata.sh:.! conversión secuencia de comandos shell de VIEWDATA.BAT

1 # /bin /bash 2 # viewdata.sh 3 # VIEWDATA.BAT convertido de la cáscara guión 4 5 DATAFILE = /home /bozo /archivos de datos /book-collection.data 6 ARGNO = 1 7 8 # @ echo off no se requiere de comandos aquí 9 10 if [$ # ". -lt $ ARGNO " !!] # SI% 1 == IR A continuación ViewData 11 12 menos $ DATAFILE # TIPO C: \\ MYDIR \\ BOOKLIST.TXT |  MÁS 13 más 14 grep " $ 1 " $ DATAFILE # FIND "% 1 " C: \\ MYDIR \\ BOOKLIST.TXT 15 fi 16 17 de salida 0 #: EXIT0 18 19 # marcas de salto, hay otros medios pequeños , en un script de shell no es necesario. # 20, podemos decir que el guión de los convertidos mejor que el archivo por lotes original, # 21 + más corto, aspecto más limpio, más elegante.

-------------------------------------------------- ------------------------------

Ted Davis, de secuencias de comandos shell en el PC en el sitio tiene mucho de la antigua programación archivo por lotes tutorial
, algunas ingeniosas técnicas que utiliza, y concha scripts tienen el mismo propósito.

Copyright © Conocimiento de Windows All Rights Reserved