Летучая мышь долго закрывается

Обновлено: 21.11.2024

Моя проблема в том, что в Windows есть окна командной строки, которые закрываются сразу после выполнения. Чтобы решить эту проблему, я хочу, чтобы по умолчанию окно оставалось открытым. Обычно такого поведения можно избежать тремя способами, которые приходят мне на ум:

  1. Помещение строки паузы после пакетных программ, чтобы предложить пользователю нажать клавишу перед выходом.
  2. Запуск этих пакетных файлов или других инструментов управления командной строкой (даже запуск службы, перезапуск и т. д. с помощью net start xy или чего-либо подобного) в cmd.exe (Пуск - Выполнить - cmd.exe)
  3. Запуск этих программ с помощью команды cmd /k: cmd /k myprogram.bat

Но есть и другие случаи, когда пользователь:

  1. Запускает программу в первый раз и не знает, что данная программа будет запущена в командной строке (командный процессор Windows), например. при запуске ярлыка из меню "Пуск" (или откуда-то еще), ИЛИ
  2. Неудобно постоянно запускать cmd.exe, и у него нет времени/возможности везде переписывать код этих команд, ставить после них паузу или избегать выхода явно.

Я прочитал статью об изменении поведения cmd.exe по умолчанию при его явном открытии с созданием записи автозапуска и управлением ее содержимым в следующих местах:

(Элементами автозапуска являются _String значения_ . )

Я поставил cmd /d /k в качестве значения, чтобы попробовать, но это совсем не изменило поведение упомянутых выше вещей. Он просто изменил поведение окна командной строки при его явном открытии (Start-Run-cmd.exe).

Как это работает? Можете ли вы дать мне какие-либо идеи для решения этой проблемы?

От вашего вопроса со всеми пояснениями у меня захотелось взорваться. Можете ли вы сказать что-то вроде: я хочу запустить пакетный файл с этой командой «пример», и я хочу, чтобы окно команды оставалось открытым после завершения. Это то, что вы спрашиваете? Пожалуйста, вставьте пример кода.

+1 Согласен. Немного многословно, пожалуйста, пересмотрите свой вопрос и, если возможно, используйте пример и составьте более краткий вопрос.

Это нормальное поведение, и хотя ваш вопрос, безусловно, верен, вы должны задаться вопросом, почему вам нужно держать командную строку открытой после этого (большинство утилит созданы с учетом этого предостережения).

На мой взгляд, это не настоящий вопрос. Поскольку вы просто указываете пользователю использовать вместо этого пакетный файл. Если цель вопроса не в этом, уточните свой вопрос, удалив любую вводящую в заблуждение информацию, и объясните, какова ваша настоящая цель. Трудно найти правильный ответ, если он неясен.

@Randolf Richardson, это потому, что эти инструменты не должны быть видны конечному пользователю никогда (в конце концов, именно поэтому мы сейчас используем графический интерфейс). Если вам действительно нужна такая информация, большинство ИТ-групп отправят пакетные файлы, чтобы собрать им соответствующую системную информацию и отобразить ее. Я не вижу никакого возможного способа, которым, если решение этого вопроса будет найдено, оно вызовет меньше проблем, чем решит - так много вещей отправляется на стандартный вывод на постоянной основе, которые никогда не должны были быть видимыми. по уважительной причине.

12 ответов 12

У меня есть решение, которое применимо только к файлам .cmd и .bat:

Откройте regedit и перейдите к каждому из:

Теперь измените "Значение ключа по умолчанию" на cmd.exe /k "%1" %* . Теперь окно каждого пакетного скрипта останется открытым после его выполнения.

Обратите внимание, что это похоже на использование cmd.exe /c cmd.exe /k program.bat , что означает, что другой экземпляр CMD будет запущен в родительском. Я не смог найти, как перезаписать первый аргумент /c.

Вы также можете сделать это с помощью [exefile] , но теперь он покажет пустое окно консоли, если исполняемый файл имеет графический интерфейс.

+1 за единственное решение, которое действительно отвечает на поставленный вопрос. К сожалению, я думаю, что это может быть утечка памяти. Что происходит, когда служба запускает новый пакетный файл без указания CMD.EXE в строке CMD? Не будет ли этот код использоваться в этом случае? Разве это не создаст новое окно на неинтерактивном рабочем столе и не оставит его открытым до перезапуска?

Консоль закрывается, когда последний присоединенный к ней процесс завершает работу или вызывает FreeConsole.

Другими словами, окно консоли Win32 всегда будет закрыто, когда завершится последняя запущенная в нем программа, и вы не можете изменить это.

(Для 16-разрядных программ MS-DOS Windows предлагает параметр «Закрыть при выходе» в диалоговом окне свойств, но это не исключение из приведенного выше поведения: это процесс NTVDM, который удерживает окно открытым. Кроме того, эта опция снова для каждой программы.)

+1 за понимание того, как и почему закрываются окна консоли (в отличие от большинства, которые просто говорят: "ОМГ, ПОЧЕМУ ОНО НЕ МОЖЕТ ОСТАВАТЬСЯ ОТКРЫТЫМ. 1111one"). Он ведет себя так, как задумано, и он должен оставаться таким, ИМХО. Это основная причина, по которой у нас есть стандартные потоки и пакетные файлы.

@Breakthrough Вопрос в том, как я могу сделать X , а не в том, по вашему мнению, должен ли я делать X . Этот ответ бесполезен, он подразумевает, что X невозможно, когда частичные решения уже были представлены в другом месте. (-1)

Просто откройте командную строку в месте расположения вашего пакетного файла и вручную введите имя вашего пакетного файла, чтобы запустить его в этом окне.

1. Перейдите в папку, в которой находится исполняемый файл.
2. Щелкните правой кнопкой мыши, удерживая клавишу Shift, и выберите "Командное окно отсюда"
3. Введите имя исполняемого файла и нажмите Enter
4.Процесс должен запуститься, но окно должно остаться открытым

Я не знал о Shift+щелчок правой кнопкой мыши. Кроме того, однако, вы можете перетащить исполняемый файл в окно cmd, которое автоматически вставит путь для вас.

Обычно это работает для меня, но, по-видимому, это не совсем так, потому что я здесь ищу решение именно потому, что оно не работает в моей текущей ситуации.

cmd.exe /k вызовет проблемы с некоторыми пакетами. Если пакетный выход 1 (без /B ), ваша консоль будет закрыта. Хитрость заключается в использовании:

Чтобы использовать это по умолчанию для всех пакетных файлов, установите HKEY_CLASSES_ROOT\cmdfile\shell\open\command\(по умолчанию) и HKEY_CLASSES_ROOT\batfile\shell\open\command\(по умолчанию) на "%windir%\system32\cmd .exe" /k "%windir%\system32\cmd" /c "%1" %* .

Я думал, что "%*" передает полный список параметров, поэтому не будет ли это передавать первый параметр дважды, один раз как "%1" и еще раз как первый параметр "%*"?

@KevinFegan Я не проверял причину, но %1 должен сохранять кавычки, что означает, что в некоторых случаях он может быть заключен в двойные кавычки. Существует также разница между %1 %2 %3 .. и %*, которую я сейчас не помню, но %1 %2 %3 работает в некоторых случаях, когда %* не работает.

Таким образом, если вы щелкнете пакетный файл или ссылку (ярлык) в проводнике Windows, вы можете приостановить выполнение программы пакетного файла перед ее выходом, чтобы вы могли просмотреть выходные данные программы и любые сообщения об ошибках.

Используя ВЫБОР, вы можете запрограммировать возможность для пользователя выбирать различные действия, а используя ТАЙМ-АУТ, вы можете позволить окну закрыться после временной задержки (без присмотра). Если вы запускаете пакетный файл из окна командной строки, эти паузы могут раздражать.

Связанное решение позволит вам решить, хотите ли вы пропустить паузы, если пакетный файл был запущен из окна командной строки.

Вы можете прочитать больше по предоставленной ссылке, но суть в том, что он использует переменную среды:

чтобы определить, был ли пакетный файл запущен из командного окна или нет.

Итак, вы используете его следующим образом:

В момент выхода из пакетного файла вы добавляете такой код:

Всякий раз, когда мы запускаем любой пакетный файл, на короткое время появляется окно командной строки, и оно продолжается одновременно. Вы не видите, какие команды выполнялись в командной строке из-за пакетного файла.

В пакетном файле есть команды, которые выполняют действия, связанные с системой, и эти команды выполняются последовательно. Так что, если вы хотите контролировать свои пакетные файлы и предотвратить автоматическое закрытие командной строки при их запуске?

Оглавление

Ниже приведены три способа предотвратить закрытие окна командной строки после выполнения команд. Выберите наиболее подходящий для вас вариант.

Откройте пакетный файл в Блокноте, щелкнув его правой кнопкой мыши и выбрав «Изменить» в списке.

Затем вставьте следующую команду в конец пакетного файла

Далее сохраните файл, нажав «Ctrl+S», и закройте блокнот. Дважды щелкните файл .bat. Вы увидите, что CMD останется открытым, пока вы этого хотите.

Это очень простой и удобный способ предотвратить закрытие окна командной строки после выполнения команд.

Второй способ, который я вам покажу, тоже простой.

Отредактируйте файл bat, щелкнув его правой кнопкой мыши и выбрав «Редактировать» из списка. Ваш файл откроется в блокноте.

Теперь добавьте слово «ПАУЗА» в конец файла bat. Окно командной строки будет оставаться открытым до тех пор, пока вы не нажмете ни одну клавишу.

Вы можете легко увидеть каждую команду, которая была запущена в результате bat-файла в CMD, пока вы не нажимаете никакую клавишу.

Вы можете предотвратить закрытие окна командной строки после выполнения команд, добавив ключ реестра в реестр Windows. Для этого введите в блокноте следующий код и сохраните файл с расширением .reg.

Дважды щелкните сохраненный файл после его сохранения. Windows сохранит значения реестра в реестре. Запустите любую команду или пакетный сценарий в CMD сейчас, и окно командной строки останется открытым, пока вы его не закроете.

Все это быстрые и простые способы оставить окно командной строки открытым, чтобы вы могли настраивать и отслеживать каждую команду, выполняемую с помощью пакетного файла или сценария Powershell. Если у вас есть другие вопросы, пожалуйста, прокомментируйте ниже. Большое спасибо.

У меня есть один графический процессор rx 580 8g, и я установил его последний драйвер radeon с их веб-сайта. Я отредактировал файл Claymore bat с моей информацией, когда я запускаю его, он закрывается, прежде чем я даже замечаю, что там написано, я не знаю, я пропускаю какие-либо программы, которые должны быть установлены до этого?

Поместите "pause" в конец вашего bat-файла, и он оставит окно открытым, чтобы показать вам, где он зависает. Используйте Google для диагностики оттуда

'EthDcrMiner64.exe" не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл

было бы неплохо, если бы вы могли помочь с этим :D

выключите антивирус, многие программы переместят исполняемый файл майнинга в карантин, и майнинг прекратится

У меня нет антивайруса, это новая установка Windows 10, вы думаете о чем-то другом?

Вы открываете двойным щелчком или запускаете из командной строки?

двойной щелчок, как начать с команды?

кстати, у меня был хороший хеш, он отлично работает

Может быть, проверить файлы журнала?

Находится ли он в папке или месте вместе со всеми остальными файлами? Например, конфигурация и т. д. Если нет, это может быть вашей проблемой.

Я использую W10, и у меня такая же проблема. мое решение заключалось в создании нового bat-файла для запуска другого bat-файла, просто поместите строку с запуском и исходным именем файла *.bat, например, «start dual_start.bat»

Я обнаружил, что загрузка другой копии Claymore и простое копирование и вставка EthDcrMiner64 в мою старую папку решили проблему. По какой-то причине он был удален

У меня была такая же проблема. Добавление некоторых «направлений», чтобы помочь ОС найти EthDcrMiner64.exe, было решением для меня. Место, где находится EthDcrMiner64.exe, находится в папке cuda7.5, поэтому, если у вас такой же случай, выполните следующие действия: 1. откройте start.bat с помощью блокнота. 2. написать "start cuda7.5" в той же строке и перед EthDcrMiner64.exe. (это должно выглядеть примерно так: «start cuda7.5\EthDcrMiner64.exe -epool eth-eu1.nanopool.org:9999 -ewal.») 3.сохраните и выйдите.

Если вы получаете сообщение об ошибке при загрузке data.bin или что-то в этом роде, вам необходимо переместить все файлы data.bin (data.bin, data1a1.bin, data1b1.bin. ) в папку cuda7.5.

Обсуждение майнинга криптовалюты Ethereum. Задавайте вопросы или получайте новости о добыче полезных ископаемых, оборудовании, программном обеспечении, прибыльности и других связанных с этим вопросах.

Людей можно простить за игнорирование летучих мышей. В конце концов, многие виды летучих мышей исчезают, когда мы ложимся спать. И поколения знаний о Дракуле, возможно, заставили нас немного насторожиться.

Маленькая коричневая летучая мышь. Тодд Крэйвенс

Но летучие мыши — это разные люди. Они составляют одну из крупнейших групп млекопитающих, насчитывающую более 1300 видов по всему миру. Вблизи виды летучих мышей сильно отличаются друг от друга. У некоторых большие уши. Другие щеголяют замысловатыми носами или длинными челюстями. С таким большим морфологическим разнообразием летучие мыши дают возможность узнать, какие типы эволюционных сил формируют формы животных.

Группа биологов из Вашингтонского университета использовала для этого летучих мышей. Постдокторские исследователи Джессика Арбор и Эбигейл Кертис, а также Шарлин Сантана, адъюнкт-профессор биологии Университета Вашингтона и куратор млекопитающих в Музее естественной истории и культуры Берка Университета Вашингтона, сосредоточились на разнообразии черепов летучих мышей. Исследователи выполнили микроКТ-сканирование с высоким разрешением черепов более 200 видов летучих мышей. Они использовали сканирование, а также информацию об эволюционных отношениях между видами летучих мышей, чтобы проанализировать типы физических изменений, которые произошли в черепах летучих мышей на протяжении десятков миллионов лет, и сопоставить их с конкретными событиями в эволюции летучих мышей, например, когда родословная сменили диету или адаптировались к новой экологической нише. В статье, опубликованной 2 мая в Nature Communications, они сообщают, что две основные силы формировали черепа летучих мышей на протяжении их эволюционной истории: эхолокация и диета. Они даже смогли определить, когда в истории летучих мышей эти силы были доминирующими.

Черепа разных семейств летучих мышей различной формы. Деннис Уайз/Вашингтонский университет

"Наше исследование было направлено на ответ на важный вопрос об эволюции разнообразия черепа летучей мыши: чем объясняется большое количество различий, которые мы наблюдаем в форме черепа?" — сказала Сантана. «Мы обнаружили, что эхолокация является основным — и древним — фактором, влияющим на форму черепа. Диета также важна, но, как правило, в последнее время».

Ранее Сантана использовала микроКТ для изучения эволюции и механики силы укуса листоносых летучих мышей — большого и разнообразного таксономического семейства летучих мышей из Америки. В текущем исследовании ее группа исследовала более широкий спектр видов летучих мышей. Они выполнили микроКТ-сканирование черепов 203 видов всех 20 таксономических семейств летучих мышей. Черепа поступили из коллекций Музея Берка, Американского музея естественной истории, Музея Филда, Смитсоновского института и Музея естественной истории округа Лос-Анджелес.

"Музейные коллекции образцов летучих мышей сыграли решающую роль в том, что мы позволили нам так широко изучить все семейства летучих мышей и по-настоящему изучить эволюцию такой разнообразной группы", – сказал Арбур.

Сканирование собрало подробные данные о трехмерной форме нижней челюсти для 191 вида и черепа — верхней части черепа, включающей верхнюю челюсть и черепную коробку, — для 202 видов. Затем исследователи использовали вычислительное моделирование, чтобы объединить данные микроКТ-сканирования черепов с данными об эволюционных отношениях между видами летучих мышей, а также экологическими характеристиками, такими как диета. Их анализ позволил им не только сравнить различия в черепах между линиями летучих мышей и внутри них, но и сосредоточиться на определенных частях черепа, таких как нижняя челюсть.

Черепа обыкновенной летучей мыши Syconycteris australis (слева) и седой летучей лисицы Pteropus poliocephalus (справа). Деннис Уайз/Вашингтонский университет

"Важно независимо анализировать различные части черепа, потому что некоторые части черепа выполняют множество различных функций, что может ограничивать изменения, которые они могут претерпевать", – сказал Сантана. «Например, череп выполняет множество функций, таких как питание, дыхание и защита мозга. Нижняя челюсть в основном участвует только в кормлении, что может дать ей больше свободы для развития в ответ на изменения в рационе».

Проведенный командой анализ показал, что на раннем этапе эволюции летучих мышей — примерно от 58 миллионов до 34 миллионов лет назад — эхолокация была основным фактором, определяющим форму черепа у всех семейств летучих мышей. Большинство летучих мышей используют эхолокацию для охоты, кормления и навигации в условиях плохой освещенности.Летучие мыши используют эхолокацию, издавая определенные типы высоких звуков гортанью, а затем слыша эхо, когда эти звуковые волны отражаются от объектов на их пути. Летопись окаменелостей указывает на то, что эхолокация развилась у летучих мышей рано, по крайней мере, 52 миллиона лет назад. С тех пор у разных семейств летучих мышей развились уникальные механизмы эхолокации, такие как проецирование звуков через ноздри, а не через рот. Одна группа, мегалетучие мыши, даже потеряла способность к эхолокации гортани.

Команда обнаружила, что примерно 26 миллионов лет назад питание стало доминирующей движущей силой эволюции формы черепа, но не у всех летучих мышей. В то время как некоторые семейства летучих мышей довольно однородны в диете, все виды питаются насекомыми, например, листоносые летучие мыши включают виды, которые едят совершенно разные виды пищи, от насекомых до фруктов и мелких позвоночных — даже кровь. Команда обнаружила, что эволюция различных диет у листоносых летучих мышей на самом деле была основным фактором изменения формы черепа в этой группе.

"Листоносые летучие мыши отличаются необычайным разнообразием формы черепа и рациона питания, – – говорит Сантана. «За относительно короткий период времени у них развился набор адаптаций черепа, поскольку они проникли в разные пищевые ниши».

Диета и эхолокация также не оказывали одинакового влияния на эволюцию черепа. Вместо этого исследователи увидели «расцепление» частей черепа с точки зрения того, как две силы сформировали их. Диета оказывала более сильное влияние на нижнюю челюсть, тогда как эхолокация оказывала большее влияние на череп.

Слева направо показаны сохранившиеся экземпляры листоносых летучих мышей Уотерхауса (из семейства листоносых летучих мышей); бархатные свободнохвостые летучие мыши (из семейства свободнохвостых летучих мышей); кубинские цветочные летучие мыши (из семейства листоносов); и коричневые цветочные летучие мыши (из семейства листоносых летучих мышей). Деннис Уайз/Вашингтонский университет

Команда Сантаны продолжает эту работу в рамках более масштабной работы, финансируемой Национальным научным фондом, по сравнению эволюционных сил, формирующих разнообразие черепов у разных групп млекопитающих, включая летучих мышей, приматов и хищников. Эти исследования могли бы определить, применимы ли закономерности, наблюдаемые у летучих мышей, такие как разделение частей черепа или разнообразие форм по мере адаптации видов к новым экологическим нишам, к другим линиям, включая нашу собственную.

Исследование финансировалось Национальным научным фондом, Американским музеем естественной истории и Канадским советом по естественным наукам и инженерным исследованиям.

Читайте также: