batch-file                
            Различия между Batch (Windows) и Terminal (Linux)
        
        
            
    Поиск…
Вступление
            Пакет и bash совершенно разные. Пакетные флаги обозначаются символом 
        / , а флаги bash - . Капитализация имеет значение в bash, но (почти) вовсе не в партии. Имена переменных пакета могут содержать пробелы, имена переменных bash не могут. В конечном счете, оба способа управления и взаимодействия с командной строкой. Неудивительно, что существует достаточное количество перекрытий между возможностями двух систем.
        замечания
-  
bitsadminустарел в пользу командлета PowerShell BITS, но по-прежнему работает с Windows 10 версии 1607 -  
certutilразделяет пары шестнадцатеричных цифр пробелом, поэтомуmd5sumвернет примерное значениеd41d8cd98f00b204e9800998ecf8427e, тогда какcertutilотображает то же значение, что иd4 1d 8c d9 8f 00 b2 04 e9 80 09 98 ec f8 42 7e -  Чтобы 
cdк другому диску (например, от C: до D :), должен использоваться флаг/d -  
delне может удалять папки, вместо этого использоватьrm -  
grepнамного мощнее, чемfindиfindstr, сравнивать их почти несправедливо;findне имеет возможностей регулярного выражения, аfindstrимеет чрезвычайно ограниченные возможности регулярного выражения ([az]{2}недопустим синтаксис, но[az][az]is) -  
forциклов в командной строке Windows могут использоваться только односимвольные имена переменных; это единственный раз, когда имена переменных пакета зависят от регистра -  
forциклов в командной строке также используйте переменную form%Aвместо%A%-forциклов в пакетных скриптах используйте переменную form%%A -  
mdавтоматически создает любые необходимые родительские каталоги, в то время какmkdirтребуется флаг-p -  
remне может использоваться в качестве встроенного символа комментария, если ему не предшествует символ& -  
::не может использоваться как встроенный комментарий вообще, а также не должен использоваться внутри кодового блока (набор скобок) 
-  Обратите внимание, что некоторые команды Windows, такие как 
pingвсе еще используют-как флаги 
Пакетные команды и их эквиваленты Баша
| партия | удар | Описание | 
|---|---|---|
 command /?  |   man command  |  Показывает помощь для команды | 
 bitsadmin  |   wget или curl  | Загружает удаленный файл | 
 certutil -hashfile file_name MD5  |   md5sum file_name  |  Получает контрольную сумму MD5 имени_файла | 
 cd  |   pwd  |  Отображает текущий каталог | 
 cd directory  |   cd directory  |  Изменяет текущий каталог на указанный | 
 cls  |   clear  |  Очищает экран | 
 copy  |   cp  |  Копирует файл или файлы из исходного пути в целевой путь | 
 date  |   date  |  Отображает дату или устанавливает ее на основе ввода пользователем. | 
 del  |   rm  |  Удаляет файл или файлы | 
 dir  |   ls  |  отображает список файлов и каталогов в текущем каталоге | 
 echo  |   echo  |  Отображает текст на экране | 
 exit  |   return  |  Выходит скрипт или подпрограмма | 
 exit  |   logout  |  Закрывает командную строку или терминал | 
 fc  |   diff  |  Сравнивает содержимое двух файлов | 
 find "string" file_name  |   grep "string" file_name  |  Ищет имя_файла для строки | 
 findstr "string" file_name  |   grep "string" file_name  |  Ищет имя_файла для строки | 
 for /F %A in (fileset*) do something  |   for item in fileset*; do; something; done  |  Сделайте что-нибудь для каждого файла в наборе файлов | 
 for /F %A in ('command') do something  |   `command`  |  Возвращает вывод команды | 
 for /L %A in (first,increment,last) do something  |   for item in `seq first increment last`; do; something; done  |  Начинается сначала и подсчитывается с помощью приращения, пока не достигнет последнего | 
 forfiles  |   find  |  Ищет файлы, соответствующие определенным критериям | 
 if "%variable%"=="value" (  |   if [ "variable"="value" ]; then  |  Сравнивает два значения | 
 ipconfig  |   ifconfig  |  Отображает информацию IP | 
 md  |   mkdir  |  Создает новые папки | 
 mklink  |   ln -s  |  Создает символическую ссылку | 
 more  |   more  |  Отображает один экран вывода одновременно | 
 move  |   mv  |  Перемещает файл или файлы из исходного пути в целевой путь | 
 pause  |   read -p "Press any key to continue"  |  Приостанавливает выполнение сценария до тех пор, пока пользователь не нажмет кнопку | 
 popd  |   popd  |  Удаляет верхнюю запись из стека каталога и переходит в новую верхнюю директорию | 
 pushd  |   pushd  |  Добавляет текущий каталог в стек каталога и переходит в новый верхний каталог | 
 ren  |   mv  |  Переименование файлов | 
 rem или ::  |  #  |  Комментарии строки кода | 
 rd  |   rmdir  |  Удаляет пустые каталоги | 
 rd /s  |   rm -rf  |  Удаляет каталоги независимо от того, были они пусты или нет | 
 set variable=value  |   variable=value  |  Устанавливает значение переменной в значение | 
 set /a variable=equation  |   variable=$((equation))  |  Выполняет математику (пакет может использовать только 32-битные целые числа) | 
 set /p variable=promptstring  |   read -p "promptstring" variable  |  Получает пользовательский ввод и сохраняет его в переменной | 
 shift  |   shift  |  Сбрасывает аргументы на 1 (или n, если предусмотрено) | 
 sort  |   sort  |  Сортировка по алфавиту по строке | 
 tasklist  |   ps  |  Показывает список запущенных процессов | 
 taskkill /PID processid  |   kill processid  |  Убивает процесс с помощью PID processid | 
 time /t  |   date  |  Отображает текущее время | 
 type  |   cat  |  Отображает содержимое файла | 
 where  |   which  |  Ищет текущий каталог и PATH для файла или команды | 
 whoami  |   id  |  Отображает имя и группу текущего пользователя | 
Пакетные переменные и их эквивалент Bash
| партия | удар | Описание | 
|---|---|---|
 %variable%  |   $variable  |  Регулярная переменная | 
 !variable!  |   $variable  |   Переменная внутри блока кода, когда setlocal enabledelayedexpansion  | 
 %errorlevel% или ERRORLEVEL  |  $?  |  Возвращает статус предыдущей команды: 0 в случае успеха, 1 (или что-то еще), если нет | 
 %1 , %2 , %3 и т. Д.  |  $1 , $2 , $3 и т. Д.  | Параметры, заданные скрипту | 
 %*  |   $*  |  Все параметры, заданные скрипту | 
Modified text is an extract of the original Stack Overflow Documentation
        Лицензировано согласно CC BY-SA 3.0
        Не связан с Stack Overflow