Поиск…


Вступление

Пакет и 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