Наша совместная команда Banwar.org

Связаться с нами

  • (097) ?601-88-87
    (067) ?493-44-27
    (096) ?830-00-01

Статьи

Перетворення пакетних (* .bat) файлів DOS в сценарії командної оболонки

  1. Перетворення пакетних (* .bat) файлів DOS в сценарії командної оболонки Велике число програмістів...
  2. Перетворення пакетних (* .bat) файлів DOS в сценарії командної оболонки
  3. Перетворення пакетних (* .bat) файлів DOS в сценарії командної оболонки

Перетворення пакетних (* .bat) файлів DOS в сценарії командної оболонки

Велике число програмістів починало вивчати скриптові мови на PC, що працюють під управлінням DOS. Навіть на цьому "каліки" вдавалося створювати непогані сценарії, хоча це і вимагало значних зусиль. Іноді ще виникає потреба в перенесенні пекетних файлів DOS на платформу UNIX, у вигляді сценаріїв командної оболонки. Зазвичай це не складно, оскільки набір операторів, доступних в DOS, представляє з себе обмежена підмножина еквівалентних команд, доступних в командній оболонці.

Таблиця H-1. Ключові слова / змінні / оператори пакетних файлів DOS і їх аналоги командної оболонки

Оператори пакетних файлів Еквівалентні команди в UNIX Опис% $ префікс аргументів командного рядка / - ознака ключа (опція) \ / роздільник імен каталогів в дорозі == = (дорівнює) порівняння рядків! ==! ! = (Не дорівнює) порівняння рядків | | конвеєр (канал) @ set + v не виводити поточну команду * * в імені файлу>> перенаправлення (з видаленням існуючого файлу) >> >> перенаправлення (з додаванням в кінець існуючого файлу) <<перенаправлення вводу stdin% VAR% $ VAR змінна оточення REM # коментар NOT! заперечення подальшого умови NUL / dev / null для того, щоб "сховати" висновок команди ECHO echo висновок (в Bash має велике число опцій) ECHO. echo висновок порожнього рядка ECHO OFF set + v не виводити наступні команди FOR %% VAR IN (LIST) DO for var in [list]; do цикл: LABEL еквівалент відсутній (немає необхідності) мітка GOTO еквівалент відсутній (використовуйте функції) перехід по заданій мітці PAUSE sleep пауза, або очікування, протягом заданого часу CHOICE case або select вибір з меню IF if умовний оператор if IF EXIST FILENAME if [ -e filename] перевірка існування файлу IF!% N ==! if [-z "$ N"] Перевірка: параметр відсутній CALL source або. (Оператор "крапка") іншого сценарію COMMAND / C source або. (Оператор "крапка") іншого сценарію (те саме, що і CALL) SET export встановити змінну оточення SHIFT shift зрушення списку аргументів уомандной рядки вліво SGN -lt або -gt знак (цілого числа) ERRORLEVEL $? код завершення CON stdin (stdin) PRN / dev / lp0 пристрій принтера LPT1 / dev / lp0 пристрій принтера COM1 / dev / ttyS0 перший послідовний порт

Пакетні файли зазвичай містять виклики команд DOS. Вони повинні бути замінені еквівалентними командами UNIX.

Таблиця H-2. Команди DOS і їх еквіваленти в UNIX

Команди DOS Еувівалент в UNIX Опис ASSIGN ln посилання на файл або каталог ATTRIB chmod змінити атрибути файлу (права доступу) CD cd змінити каталог CHDIR cd змінити каталог CLS clear очистити екран COMP diff, comm, cmp порівняти файли COPY cp скопіювати файл Ctl-C Ctl -C перервати виконання сценарію Ctl-Z Ctl-D EOF (кінець-файлу) DEL rm видалити файл (и) DELTREE rm -rf видалити каталог з підкаталогами DIR ls -l вивести вміст каталогу ERASE rm видалити файл (и) eXIT exit завершити поточний процес FC comm, cmp порівняти файли FIND grep знайти рядок у файлах MD mkdir створити каталог MKDIR mkdir створити каталог MORE more посторінковий ви од MOVE mv перемістити PATH $ PATH шлях пошуку файлів REN mv перейменувати (перемістити) RENAME mv перейменувати (перемістити) RD rmdir видалити каталог RMDIR rmdir видалити каталог SORT sort впорядкувати файл TIME date вивести системне час TYPE cat вивести вміст файлу на stdout XCOPY cp ( розширена команда) скопіювати файл Команди DOS Еувівалент в UNIX Опис ASSIGN ln посилання на файл або каталог ATTRIB chmod змінити атрибути файлу (права доступу) CD cd змінити каталог CHDIR cd змінити каталог CLS clear очистити екран COMP diff, comm, cmp порівняти файли COPY cp скопіювати файл Ctl-C Ctl -C перервати виконання сценарію Ctl-Z Ctl-D EOF (кінець-файлу) DEL rm видалити файл (и) DELTREE rm -rf видалити каталог з підкаталогами DIR ls -l вивести вміст каталогу ERASE rm видалити файл (и) eXIT exit завершити поточний процес FC comm, cmp порівняти файли FIND grep знайти рядок у файлах MD mkdir створити каталог MKDIR mkdir створити каталог MORE more посторінковий ви  од MOVE mv перемістити PATH $ PATH шлях пошуку файлів REN mv перейменувати (перемістити) RENAME mv перейменувати (перемістити) RD rmdir видалити каталог RMDIR rmdir видалити каталог SORT sort впорядкувати файл TIME date вивести системне час TYPE cat вивести вміст файлу на stdout XCOPY cp ( розширена команда) скопіювати файл

Фактично, команди і оператори командної оболонки UNIX мають величезну кількість додаткових опцій, які розширюють їх функціональність, в порівнянні з їх еквівалентами в DOS. Здебільшого, пакетні файли DOS припускають наявність допоміжних утиліт, таких як ask.com ( "калік" аналог UNIX-вого read ).

DOS підтримує вкрай обмежений набір шаблонних символів, учавствующих в операціях підстановки імен файлів , Розпізнаючи тільки два символи - * і? .

Перетворення пакетних файлів DOS в сценарії командної оболонки, зазвичай не викликає труднощів, а результат такого перетворення читається набагато краще, ніж оригінал.

Приклад H-1. VIEWDATA.BAT: пакетний файл DOS

REM VIEWDATA REM INSPIRED BY AN EXAMPLE IN "DOS POWERTOOLS" REM BY PAUL SOMERSON @ECHO OFF IF!% 1 ==! GOTO VIEWDATA REM IF NO COMMAND-LINE ARG ... FIND "% 1" C: \ BOZO \ BOOKLIST.TXT GOTO EXIT0 REM PRINT LINE WITH STRING MATCH, THEN EXIT. : VIEWDATA TYPE C: \ BOZO \ BOOKLIST.TXT | MORE REM SHOW ENTIRE FILE, 1 PAGE AT A TIME. : EXIT0

Результат перетворення в сценарій командної оболонки, трохи покращений.

Приклад H-2. viewdata.sh: Результат перетворення VIEWDATA.BAT в сценарій командної оболонки

#! / Bin / bash # Результат перетворення пакетного файлу VIEWDATA.BAT в сценарій командної оболонки. DATAFILE = / home / bozo / datafiles / book-collection.data ARGNO = 1 # @ECHO OFF Ця команда тут не потрібна. if [$ # -lt "$ ARGNO"] # IF!% 1 ==! GOTO VIEWDATA then less $ DATAFILE # TYPE C: \ MYDIR \ BOOKLIST.TXT | MORE else grep "$ 1" $ DATAFILE # FIND "% 1" C: \ MYDIR \ BOOKLIST.TXT fi exit 0 #: EXIT0 # оператори переходу GOTO, мітки та інший "сміття" більше не потрібні. # Результат перетворення став коротше, чистіше і зрозуміліше,

На сайті Теда Девіса (Ted Davis) Shell Scripts on the PC , Ви знайдете велику кількість посібників зі створення пакетних файлів в DOS. Безумовно, його винахідливість буде вам корисна, при створенні ваших сценаріїв.

Перетворення пакетних (* .bat) файлів DOS в сценарії командної оболонки

Велике число програмістів починало вивчати скриптові мови на PC, що працюють під управлінням DOS. Навіть на цьому "каліки" вдавалося створювати непогані сценарії, хоча це і вимагало значних зусиль. Іноді ще виникає потреба в перенесенні пекетних файлів DOS на платформу UNIX, у вигляді сценаріїв командної оболонки. Зазвичай це не складно, оскільки набір операторів, доступних в DOS, представляє з себе обмежена підмножина еквівалентних команд, доступних в командній оболонці.

Таблиця H-1. Ключові слова / змінні / оператори пакетних файлів DOS і їх аналоги командної оболонки

Оператори пакетних файлів Еквівалентні команди в UNIX Опис% $ префікс аргументів командного рядка / - ознака ключа (опція) \ / роздільник імен каталогів в дорозі == = (дорівнює) порівняння рядків! ==! ! = (Не дорівнює) порівняння рядків | | конвеєр (канал) @ set + v не виводити поточну команду * * в імені файлу>> перенаправлення (з видаленням існуючого файлу) >> >> перенаправлення (з додаванням в кінець існуючого файлу) <<перенаправлення вводу stdin% VAR% $ VAR змінна оточення REM # коментар NOT! заперечення подальшого умови NUL / dev / null для того, щоб "сховати" висновок команди ECHO echo висновок (в Bash має велике число опцій) ECHO. echo висновок порожнього рядка ECHO OFF set + v не виводити наступні команди FOR %% VAR IN (LIST) DO for var in [list]; do цикл: LABEL еквівалент відсутній (немає необхідності) мітка GOTO еквівалент відсутній (використовуйте функції) перехід по заданій мітці PAUSE sleep пауза, або очікування, протягом заданого часу CHOICE case або select вибір з меню IF if умовний оператор if IF EXIST FILENAME if [ -e filename] перевірка існування файлу IF!% N ==! if [-z "$ N"] Перевірка: параметр відсутній CALL source або. (Оператор "крапка") іншого сценарію COMMAND / C source або. (Оператор "крапка") іншого сценарію (те саме, що і CALL) SET export встановити змінну оточення SHIFT shift зрушення списку аргументів уомандной рядки вліво SGN -lt або -gt знак (цілого числа) ERRORLEVEL $? код завершення CON stdin (stdin) PRN / dev / lp0 пристрій принтера LPT1 / dev / lp0 пристрій принтера COM1 / dev / ttyS0 перший послідовний порт

Пакетні файли зазвичай містять виклики команд DOS. Вони повинні бути замінені еквівалентними командами UNIX.

Таблиця H-2. Команди DOS і їх еквіваленти в UNIX

Команди DOS Еувівалент в UNIX Опис ASSIGN ln посилання на файл або каталог ATTRIB chmod змінити атрибути файлу (права доступу) CD cd змінити каталог CHDIR cd змінити каталог CLS clear очистити екран COMP diff, comm, cmp порівняти файли COPY cp скопіювати файл Ctl-C Ctl -C перервати виконання сценарію Ctl-Z Ctl-D EOF (кінець-файлу) DEL rm видалити файл (и) DELTREE rm -rf видалити каталог з підкаталогами DIR ls -l вивести вміст каталогу ERASE rm видалити файл (и) eXIT exit завершити поточний процес FC comm, cmp порівняти файли FIND grep знайти рядок у файлах MD mkdir створити каталог MKDIR mkdir створити каталог MORE more посторінковий ви од MOVE mv перемістити PATH $ PATH шлях пошуку файлів REN mv перейменувати (перемістити) RENAME mv перейменувати (перемістити) RD rmdir видалити каталог RMDIR rmdir видалити каталог SORT sort впорядкувати файл TIME date вивести системне час TYPE cat вивести вміст файлу на stdout XCOPY cp ( розширена команда) скопіювати файл Команди DOS Еувівалент в UNIX Опис ASSIGN ln посилання на файл або каталог ATTRIB chmod змінити атрибути файлу (права доступу) CD cd змінити каталог CHDIR cd змінити каталог CLS clear очистити екран COMP diff, comm, cmp порівняти файли COPY cp скопіювати файл Ctl-C Ctl -C перервати виконання сценарію Ctl-Z Ctl-D EOF (кінець-файлу) DEL rm видалити файл (и) DELTREE rm -rf видалити каталог з підкаталогами DIR ls -l вивести вміст каталогу ERASE rm видалити файл (и) eXIT exit завершити поточний процес FC comm, cmp порівняти файли FIND grep знайти рядок у файлах MD mkdir створити каталог MKDIR mkdir створити каталог MORE more посторінковий ви  од MOVE mv перемістити PATH $ PATH шлях пошуку файлів REN mv перейменувати (перемістити) RENAME mv перейменувати (перемістити) RD rmdir видалити каталог RMDIR rmdir видалити каталог SORT sort впорядкувати файл TIME date вивести системне час TYPE cat вивести вміст файлу на stdout XCOPY cp ( розширена команда) скопіювати файл

Фактично, команди і оператори командної оболонки UNIX мають величезну кількість додаткових опцій, які розширюють їх функціональність, в порівнянні з їх еквівалентами в DOS. Здебільшого, пакетні файли DOS припускають наявність допоміжних утиліт, таких як ask.com ( "калік" аналог UNIX-вого read ).

DOS підтримує вкрай обмежений набір шаблонних символів, учавствующих в операціях підстановки імен файлів , Розпізнаючи тільки два символи - * і? .

Перетворення пакетних файлів DOS в сценарії командної оболонки, зазвичай не викликає труднощів, а результат такого перетворення читається набагато краще, ніж оригінал.

Приклад H-1. VIEWDATA.BAT: пакетний файл DOS

REM VIEWDATA REM INSPIRED BY AN EXAMPLE IN "DOS POWERTOOLS" REM BY PAUL SOMERSON @ECHO OFF IF!% 1 ==! GOTO VIEWDATA REM IF NO COMMAND-LINE ARG ... FIND "% 1" C: \ BOZO \ BOOKLIST.TXT GOTO EXIT0 REM PRINT LINE WITH STRING MATCH, THEN EXIT. : VIEWDATA TYPE C: \ BOZO \ BOOKLIST.TXT | MORE REM SHOW ENTIRE FILE, 1 PAGE AT A TIME. : EXIT0

Результат перетворення в сценарій командної оболонки, трохи покращений.

Приклад H-2. viewdata.sh: Результат перетворення VIEWDATA.BAT в сценарій командної оболонки

#! / Bin / bash # Результат перетворення пакетного файлу VIEWDATA.BAT в сценарій командної оболонки. DATAFILE = / home / bozo / datafiles / book-collection.data ARGNO = 1 # @ECHO OFF Ця команда тут не потрібна. if [$ # -lt "$ ARGNO"] # IF!% 1 ==! GOTO VIEWDATA then less $ DATAFILE # TYPE C: \ MYDIR \ BOOKLIST.TXT | MORE else grep "$ 1" $ DATAFILE # FIND "% 1" C: \ MYDIR \ BOOKLIST.TXT fi exit 0 #: EXIT0 # оператори переходу GOTO, мітки та інший "сміття" більше не потрібні. # Результат перетворення став коротше, чистіше і зрозуміліше,

На сайті Теда Девіса (Ted Davis) Shell Scripts on the PC , Ви знайдете велику кількість посібників зі створення пакетних файлів в DOS. Безумовно, його винахідливість буде вам корисна, при створенні ваших сценаріїв.

Перетворення пакетних (* .bat) файлів DOS в сценарії командної оболонки

Велике число програмістів починало вивчати скриптові мови на PC, що працюють під управлінням DOS. Навіть на цьому "каліки" вдавалося створювати непогані сценарії, хоча це і вимагало значних зусиль. Іноді ще виникає потреба в перенесенні пекетних файлів DOS на платформу UNIX, у вигляді сценаріїв командної оболонки. Зазвичай це не складно, оскільки набір операторів, доступних в DOS, представляє з себе обмежена підмножина еквівалентних команд, доступних в командній оболонці.

Таблиця H-1. Ключові слова / змінні / оператори пакетних файлів DOS і їх аналоги командної оболонки

Оператори пакетних файлів Еквівалентні команди в UNIX Опис% $ префікс аргументів командного рядка / - ознака ключа (опція) \ / роздільник імен каталогів в дорозі == = (дорівнює) порівняння рядків! ==! ! = (Не дорівнює) порівняння рядків | | конвеєр (канал) @ set + v не виводити поточну команду * * в імені файлу>> перенаправлення (з видаленням існуючого файлу) >> >> перенаправлення (з додаванням в кінець існуючого файлу) <<перенаправлення вводу stdin% VAR% $ VAR змінна оточення REM # коментар NOT! заперечення подальшого умови NUL / dev / null для того, щоб "сховати" висновок команди ECHO echo висновок (в Bash має велике число опцій) ECHO. echo висновок порожнього рядка ECHO OFF set + v не виводити наступні команди FOR %% VAR IN (LIST) DO for var in [list]; do цикл: LABEL еквівалент відсутній (немає необхідності) мітка GOTO еквівалент відсутній (використовуйте функції) перехід по заданій мітці PAUSE sleep пауза, або очікування, протягом заданого часу CHOICE case або select вибір з меню IF if умовний оператор if IF EXIST FILENAME if [ -e filename] перевірка існування файлу IF!% N ==! if [-z "$ N"] Перевірка: параметр відсутній CALL source або. (Оператор "крапка") іншого сценарію COMMAND / C source або. (Оператор "крапка") іншого сценарію (те саме, що і CALL) SET export встановити змінну оточення SHIFT shift зрушення списку аргументів уомандной рядки вліво SGN -lt або -gt знак (цілого числа) ERRORLEVEL $? код завершення CON stdin (stdin) PRN / dev / lp0 пристрій принтера LPT1 / dev / lp0 пристрій принтера COM1 / dev / ttyS0 перший послідовний порт

Пакетні файли зазвичай містять виклики команд DOS. Вони повинні бути замінені еквівалентними командами UNIX.

Таблиця H-2. Команди DOS і їх еквіваленти в UNIX

Команди DOS Еувівалент в UNIX Опис ASSIGN ln посилання на файл або каталог ATTRIB chmod змінити атрибути файлу (права доступу) CD cd змінити каталог CHDIR cd змінити каталог CLS clear очистити екран COMP diff, comm, cmp порівняти файли COPY cp скопіювати файл Ctl-C Ctl -C перервати виконання сценарію Ctl-Z Ctl-D EOF (кінець-файлу) DEL rm видалити файл (и) DELTREE rm -rf видалити каталог з підкаталогами DIR ls -l вивести вміст каталогу ERASE rm видалити файл (и) eXIT exit завершити поточний процес FC comm, cmp порівняти файли FIND grep знайти рядок у файлах MD mkdir створити каталог MKDIR mkdir створити каталог MORE more посторінковий ви од MOVE mv перемістити PATH $ PATH шлях пошуку файлів REN mv перейменувати (перемістити) RENAME mv перейменувати (перемістити) RD rmdir видалити каталог RMDIR rmdir видалити каталог SORT sort впорядкувати файл TIME date вивести системне час TYPE cat вивести вміст файлу на stdout XCOPY cp ( розширена команда) скопіювати файл Команди DOS Еувівалент в UNIX Опис ASSIGN ln посилання на файл або каталог ATTRIB chmod змінити атрибути файлу (права доступу) CD cd змінити каталог CHDIR cd змінити каталог CLS clear очистити екран COMP diff, comm, cmp порівняти файли COPY cp скопіювати файл Ctl-C Ctl -C перервати виконання сценарію Ctl-Z Ctl-D EOF (кінець-файлу) DEL rm видалити файл (и) DELTREE rm -rf видалити каталог з підкаталогами DIR ls -l вивести вміст каталогу ERASE rm видалити файл (и) eXIT exit завершити поточний процес FC comm, cmp порівняти файли FIND grep знайти рядок у файлах MD mkdir створити каталог MKDIR mkdir створити каталог MORE more посторінковий ви  од MOVE mv перемістити PATH $ PATH шлях пошуку файлів REN mv перейменувати (перемістити) RENAME mv перейменувати (перемістити) RD rmdir видалити каталог RMDIR rmdir видалити каталог SORT sort впорядкувати файл TIME date вивести системне час TYPE cat вивести вміст файлу на stdout XCOPY cp ( розширена команда) скопіювати файл

Фактично, команди і оператори командної оболонки UNIX мають величезну кількість додаткових опцій, які розширюють їх функціональність, в порівнянні з їх еквівалентами в DOS. Здебільшого, пакетні файли DOS припускають наявність допоміжних утиліт, таких як ask.com ( "калік" аналог UNIX-вого read ).

DOS підтримує вкрай обмежений набір шаблонних символів, учавствующих в операціях підстановки імен файлів , Розпізнаючи тільки два символи - * і? .

Перетворення пакетних файлів DOS в сценарії командної оболонки, зазвичай не викликає труднощів, а результат такого перетворення читається набагато краще, ніж оригінал.

Приклад H-1. VIEWDATA.BAT: пакетний файл DOS

REM VIEWDATA REM INSPIRED BY AN EXAMPLE IN "DOS POWERTOOLS" REM BY PAUL SOMERSON @ECHO OFF IF!% 1 ==! GOTO VIEWDATA REM IF NO COMMAND-LINE ARG ... FIND "% 1" C: \ BOZO \ BOOKLIST.TXT GOTO EXIT0 REM PRINT LINE WITH STRING MATCH, THEN EXIT. : VIEWDATA TYPE C: \ BOZO \ BOOKLIST.TXT | MORE REM SHOW ENTIRE FILE, 1 PAGE AT A TIME. : EXIT0

Результат перетворення в сценарій командної оболонки, трохи покращений.

Приклад H-2. viewdata.sh: Результат перетворення VIEWDATA.BAT в сценарій командної оболонки

#! / Bin / bash # Результат перетворення пакетного файлу VIEWDATA.BAT в сценарій командної оболонки. DATAFILE = / home / bozo / datafiles / book-collection.data ARGNO = 1 # @ECHO OFF Ця команда тут не потрібна. if [$ # -lt "$ ARGNO"] # IF!% 1 ==! GOTO VIEWDATA then less $ DATAFILE # TYPE C: \ MYDIR \ BOOKLIST.TXT | MORE else grep "$ 1" $ DATAFILE # FIND "% 1" C: \ MYDIR \ BOOKLIST.TXT fi exit 0 #: EXIT0 # оператори переходу GOTO, мітки та інший "сміття" більше не потрібні. # Результат перетворення став коротше, чистіше і зрозуміліше,

На сайті Теда Девіса (Ted Davis) Shell Scripts on the PC , Ви знайдете велику кількість посібників зі створення пакетних файлів в DOS. Безумовно, його винахідливість буде вам корисна, при створенні ваших сценаріїв.

Перетворення пакетних (* .bat) файлів DOS в сценарії командної оболонки

Велике число програмістів починало вивчати скриптові мови на PC, що працюють під управлінням DOS. Навіть на цьому "каліки" вдавалося створювати непогані сценарії, хоча це і вимагало значних зусиль. Іноді ще виникає потреба в перенесенні пекетних файлів DOS на платформу UNIX, у вигляді сценаріїв командної оболонки. Зазвичай це не складно, оскільки набір операторів, доступних в DOS, представляє з себе обмежена підмножина еквівалентних команд, доступних в командній оболонці.

Таблиця H-1. Ключові слова / змінні / оператори пакетних файлів DOS і їх аналоги командної оболонки

Оператори пакетних файлів Еквівалентні команди в UNIX Опис% $ префікс аргументів командного рядка / - ознака ключа (опція) \ / роздільник імен каталогів в дорозі == = (дорівнює) порівняння рядків! ==! ! = (Не дорівнює) порівняння рядків | | конвеєр (канал) @ set + v не виводити поточну команду * * в імені файлу>> перенаправлення (з видаленням існуючого файлу) >> >> перенаправлення (з додаванням в кінець існуючого файлу) <<перенаправлення вводу stdin% VAR% $ VAR змінна оточення REM # коментар NOT! заперечення подальшого умови NUL / dev / null для того, щоб "сховати" висновок команди ECHO echo висновок (в Bash має велике число опцій) ECHO. echo висновок порожнього рядка ECHO OFF set + v не виводити наступні команди FOR %% VAR IN (LIST) DO for var in [list]; do цикл: LABEL еквівалент відсутній (немає необхідності) мітка GOTO еквівалент відсутній (використовуйте функції) перехід по заданій мітці PAUSE sleep пауза, або очікування, протягом заданого часу CHOICE case або select вибір з меню IF if умовний оператор if IF EXIST FILENAME if [ -e filename] перевірка існування файлу IF!% N ==! if [-z "$ N"] Перевірка: параметр відсутній CALL source або. (Оператор "крапка") іншого сценарію COMMAND / C source або. (Оператор "крапка") іншого сценарію (те саме, що і CALL) SET export встановити змінну оточення SHIFT shift зрушення списку аргументів уомандной рядки вліво SGN -lt або -gt знак (цілого числа) ERRORLEVEL $? код завершення CON stdin (stdin) PRN / dev / lp0 пристрій принтера LPT1 / dev / lp0 пристрій принтера COM1 / dev / ttyS0 перший послідовний порт

Пакетні файли зазвичай містять виклики команд DOS. Вони повинні бути замінені еквівалентними командами UNIX.

Таблиця H-2. Команди DOS і їх еквіваленти в UNIX

Команди DOS Еувівалент в UNIX Опис ASSIGN ln посилання на файл або каталог ATTRIB chmod змінити атрибути файлу (права доступу) CD cd змінити каталог CHDIR cd змінити каталог CLS clear очистити екран COMP diff, comm, cmp порівняти файли COPY cp скопіювати файл Ctl-C Ctl -C перервати виконання сценарію Ctl-Z Ctl-D EOF (кінець-файлу) DEL rm видалити файл (и) DELTREE rm -rf видалити каталог з підкаталогами DIR ls -l вивести вміст каталогу ERASE rm видалити файл (и) eXIT exit завершити поточний процес FC comm, cmp порівняти файли FIND grep знайти рядок у файлах MD mkdir створити каталог MKDIR mkdir створити каталог MORE more посторінковий ви од MOVE mv перемістити PATH $ PATH шлях пошуку файлів REN mv перейменувати (перемістити) RENAME mv перейменувати (перемістити) RD rmdir видалити каталог RMDIR rmdir видалити каталог SORT sort впорядкувати файл TIME date вивести системне час TYPE cat вивести вміст файлу на stdout XCOPY cp ( розширена команда) скопіювати файл Команди DOS Еувівалент в UNIX Опис ASSIGN ln посилання на файл або каталог ATTRIB chmod змінити атрибути файлу (права доступу) CD cd змінити каталог CHDIR cd змінити каталог CLS clear очистити екран COMP diff, comm, cmp порівняти файли COPY cp скопіювати файл Ctl-C Ctl -C перервати виконання сценарію Ctl-Z Ctl-D EOF (кінець-файлу) DEL rm видалити файл (и) DELTREE rm -rf видалити каталог з підкаталогами DIR ls -l вивести вміст каталогу ERASE rm видалити файл (и) eXIT exit завершити поточний процес FC comm, cmp порівняти файли FIND grep знайти рядок у файлах MD mkdir створити каталог MKDIR mkdir створити каталог MORE more посторінковий ви  од MOVE mv перемістити PATH $ PATH шлях пошуку файлів REN mv перейменувати (перемістити) RENAME mv перейменувати (перемістити) RD rmdir видалити каталог RMDIR rmdir видалити каталог SORT sort впорядкувати файл TIME date вивести системне час TYPE cat вивести вміст файлу на stdout XCOPY cp ( розширена команда) скопіювати файл

Фактично, команди і оператори командної оболонки UNIX мають величезну кількість додаткових опцій, які розширюють їх функціональність, в порівнянні з їх еквівалентами в DOS. Здебільшого, пакетні файли DOS припускають наявність допоміжних утиліт, таких як ask.com ( "калік" аналог UNIX-вого read ).

DOS підтримує вкрай обмежений набір шаблонних символів, учавствующих в операціях підстановки імен файлів , Розпізнаючи тільки два символи - * і? .

Перетворення пакетних файлів DOS в сценарії командної оболонки, зазвичай не викликає труднощів, а результат такого перетворення читається набагато краще, ніж оригінал.

Приклад H-1. VIEWDATA.BAT: пакетний файл DOS

REM VIEWDATA REM INSPIRED BY AN EXAMPLE IN "DOS POWERTOOLS" REM BY PAUL SOMERSON @ECHO OFF IF!% 1 ==! GOTO VIEWDATA REM IF NO COMMAND-LINE ARG ... FIND "% 1" C: \ BOZO \ BOOKLIST.TXT GOTO EXIT0 REM PRINT LINE WITH STRING MATCH, THEN EXIT. : VIEWDATA TYPE C: \ BOZO \ BOOKLIST.TXT | MORE REM SHOW ENTIRE FILE, 1 PAGE AT A TIME. : EXIT0

Результат перетворення в сценарій командної оболонки, трохи покращений.

Приклад H-2. viewdata.sh: Результат перетворення VIEWDATA.BAT в сценарій командної оболонки

#! / Bin / bash # Результат перетворення пакетного файлу VIEWDATA.BAT в сценарій командної оболонки. DATAFILE = / home / bozo / datafiles / book-collection.data ARGNO = 1 # @ECHO OFF Ця команда тут не потрібна. if [$ # -lt "$ ARGNO"] # IF!% 1 ==! GOTO VIEWDATA then less $ DATAFILE # TYPE C: \ MYDIR \ BOOKLIST.TXT | MORE else grep "$ 1" $ DATAFILE # FIND "% 1" C: \ MYDIR \ BOOKLIST.TXT fi exit 0 #: EXIT0 # оператори переходу GOTO, мітки та інший "сміття" більше не потрібні. # Результат перетворення став коротше, чистіше і зрозуміліше,

На сайті Теда Девіса (Ted Davis) Shell Scripts on the PC , Ви знайдете велику кількість посібників зі створення пакетних файлів в DOS. Безумовно, його винахідливість буде вам корисна, при створенні ваших сценаріїв.

Новости

Banwar.org
Наша совместная команда Banwar.org. Сайт казино "Пари Матч" теперь доступен для всех желающих, жаждущих волнения и азартных приключений.