Почему `start https://...&...` в CMD открывает не ту ссылку (и как это исправить)
Дата публикации: 18.09.2026

Почему `start https://...&...` в CMD открывает не ту ссылку (и как это исправить)

Хочу себе такие же кнопки

Косяк

Вы запускаете из bat-файла или командной строки:

start https://search.google.com/search-console?hl=ru&resource_id=https://test1.ru/

А браузер открывает не то, что вы ожидали — например, страницу без указания нужного ресурса, либо вообще «предыдущую» вкладку Search Console с другим resource_id:

https://search.google.com/search-console?hl=ru&resource_id=https://test2.ru/

Выглядит как мистика: ссылка в файле одна, а открывается другая. На самом деле никакой мистики нет — виноват символ & и то, как cmd.exe его интерпретирует.


Причина: & — это разделитель команд в CMD

В командной строке Windows символ & имеет специальное значение. Он говорит интерпретатору: «выполни команду слева, а затем команду справа».

Пример, где это полезно:

echo Первая команда & echo Вторая команда

Результат:

Первая команда
Вторая команда

А теперь посмотрим на ваш URL глазами cmd.exe:

start https://search.google.com/search-console?hl=ru&resource_id=https://test1.ru/

Для командной строки это не один аргумент, а три отдельные команды, разделённые амперсандами:

# Что видит cmd Что делает
1 start https://search.google.com/search-console?hl=ru Открывает браузер с обрезанным URL
2 resource_id=https://test1.ru/ Пытается выполнить как команду → ошибка «не является внутренней или внешней командой»
3 (остаток после /) Обычно игнорируется или тоже даёт ошибку

Что в итоге попадает в браузер

Только первая часть — до первого &:

https://search.google.com/search-console?hl=ru

Параметр resource_id теряется полностью. Search Console открывается, но без указания ресурса — и подставляет тот, что был открыт последним (или ресурс по умолчанию). Отсюда и ощущение, что «открылась предыдущая ссылка».


Как исправить

Способ 1: Заключить URL в кавычки (рекомендуется)

start "" "https://search.google.com/search-console?hl=ru&resource_id=https://test1.ru/"

Два важных момента:

  1. Кавычки вокруг URL — говорят cmd.exe, что это единый аргумент, а & внутри него — не разделитель команд, а часть адреса.

  2. Пустые кавычки "" перед URL — обязательны. Синтаксис start такой:

    start ["заголовок окна"] [команда] [параметры]
    

    Если первым аргументом идёт строка в кавычках, start считает её заголовком нового окна консоли, а не командой. Пустая пара "" «съедает» эту позицию, и URL попадает туда, куда нужно.

Проверьте сами — без "":

start "https://example.com"

…откроется пустое окно cmd с заголовком https://example.com, а браузер не запустится.

Способ 2: Экранировать & символом ^

Символ ^ в CMD — это «escape-символ». Он отменяет специальное значение следующего за ним символа:

start https://search.google.com/search-console?hl=ru^&resource_id=https://test1.ru/

⚠️ Работает только внутри bat-файлов. Если вводить в интерактивной командной строке, поведение отличается, и способ легко ломается при редактировании. Поэтому я рекомендую вариант с кавычками.

Способ 3: Через explorer.exe

Проводник Windows корректно обрабатывает URL с & без экранирования:

explorer "https://search.google.com/search-console?hl=ru&resource_id=https://test1.ru/"

Минус: если Проводник уже запущен, команда может «молча» ничего не открыть, если URL совпадает с уже открытым окном.


Частые сопутствующие проблемы

URL содержит % (например, %20 для пробела)

В bat-файлах символ % используется для переменных (%PATH%, %1). Чтобы получить литеральный процент, его нужно удвоить:

start "" "https://example.com/search?q=hello%%20world&lang=ru"

В интерактивной командной строке удвоение не нужно — там % сам по себе не является спецсимволом.

URL содержит ^, <, >, |

Все эти символы тоже специальные. Внутри кавычек они безопасны:

start "" "https://example.com/?a=1&b=2|c=3"

Без кавычек придётся экранировать каждый: ^&, ^|, ^<, ^>.

Нужно открыть несколько ссылок

start "" "https://google.com/?q=test&hl=ru"
start "" "https://yandex.ru/search/?text=test&lr=213"
start "" "https://github.com/search?q=cmd&type=repositories"

Каждая ссылка — в своих кавычках, каждая — с "" впереди.


Шпаргалка

Ситуация Решение
URL с & в bat-файле start "" "URL"
URL с & в командной строке start "" "URL"
URL с %20 в bat-файле start "" "URL%%20..."
Нужен конкретный браузер start chrome "URL"
Не работает start вообще explorer "URL"

Золотое правило: если URL содержит &, %, ^, |, <, > — всегда заключайте его в кавычки и ставьте "" перед ним при использовании start. Это решает 99% проблем с открытием ссылок из CMD.


Короткий вывод

Ваша ссылка не «подменялась» на предыдущую — она обрезалась на первом &. CMD воспринимал всё после него как отдельные команды, а до браузера доходила только часть адреса до resource_id. Search Console открывался без параметра ресурса и подставлял тот, что был в истории. Добавьте кавычки и пустую пару "" — и ссылка откроется ровно так, как написана.


 




Анимированный фон