командные файлы (.bat) ... что означает set game =% 1%? Этот пакетный файл не работает правильно

1281
HellfireEternal

Предполагается, что этот пакетный файл назначит путь к файлу образа диска для переменной «game», а затем смонтирует этот образ с помощью программного вызова Daemon Tool's. Затем программа под названием SSF должна загрузить смонтированный образ диска.

К сожалению, этот пакетный файл загружает только образ, который уже смонтирован. Я пытаюсь понять каждую строку в этом файле, и я не могу найти никакой помощи со строкой .... set game =% 1% .... Я понимаю, что это присвоение переменной игре, но что это за переменная? Вот содержимое пакетного файла. Спасибо за любую помощь, которую вы можете предоставить.

@echo off set game=%1%  set daemon="C:\Program-blahblah-\DTLite.exe"  set emu="C:\Users-blahblah-\SSF_TestVer\SSF.exe"  %daemon% -mount 0, %game%  start /wait "" %emu%  %daemon% -unmount 0  
1
Так что этот вопрос о том, что вы хотите, чтобы он работал с демоном, а не каким-то другим решением, верно? Я предполагаю, что конкретно вы не ищете ответ с каким-то другим предложенным решением вместо демона, верно? Это моя интерпретация, поэтому я просто хочу услышать, как вы проверяете или уточняете иное на всякий случай. Pimp Juice IT 6 лет назад 0
Я получил .bat для работы, однако, есть ли команда, чтобы закрыть окно и запустить код для одновременного запуска% emu%? Это прекрасно работает, но если бы я мог заставить окно закрываться самостоятельно, а не после закрытия программы% emu%, это было бы ИДЕАЛЬНО! Спасибо! HellfireEternal 6 лет назад 0
Попробуйте поместить `IF NOT DEFINED MINIMIZED SET MINIMIZED = 1 && START" "/ MIN"% ~ dpnx0 "% * && EXIT` вверху скрипта, а затем просто запустите его снова, чтобы посмотреть, поможет ли это. См. [Мой ответ здесь] (https://superuser.com/questions/1225455/how-to-make-an-error-message-in-a-batch-script-if-the-target-isnt-present/1225769 # 1225769) с этим решением и некоторым описанием. Pimp Juice IT 6 лет назад 0
В противном случае рассмотрите возможность запуска этого с планировщиком заданий, чтобы выполнить сценарий с выбранной опцией «Запуск с самыми высокими привилегиями». См. [Мой ответ здесь] (https://superuser.com/questions/1285057/make-executing-cmd-window-show-when-it-is-ran-by-a-task-scheduler/1285240#1285240), но Вы можете пойти так далеко, что используете метод `SCHTASKS / Run / TN" \ path \ JobName "` для выполнения, возможно. Есть некоторые отправные точки для тестирования, по крайней мере, о которых я могу быстро подумать, но я предоставил источникам ** мои ответы ** с более подробной информацией. Pimp Juice IT 6 лет назад 0

1 ответ на вопрос

1
barlop

Я полагаю, что %1%это ошибка, и она должна быть, %1и вы должны запустить командный файл с таким параметром, как название игры. Например, C:\blah>thebatfile thegameэто будет то, что %1относится к первому параметру. Вы можете просмотреть любую переменную с помощью echo %whatevervar%или echo %1и echo %daemon% И вы можете удалить @ECHO OFFстроку, чтобы вы могли видеть больше того, что происходит. И в любой момент в пакетном файле вы можете сделать это pause(при запуске он будет останавливаться после строки, и вы можете сделать ctrl-c для выхода), или вы можете попробовать строку, которая говорит, exit /b чтобы выйти из пакетного файла раньше.

Хотя я думаю, что это может ответить на ваш вопрос о% 1, это может не помочь вам, кроме ответа на ваш вопрос. Выходя за рамки вашего вопроса - Откуда вы получаете этот пакетный файл? У него могут быть различные проблемы, которые зависят от специфики исполняемых файлов, которые он помогает вам запускать.

Возможно, вам лучше избегать инструментов демона. Одно время это было отличное программное обеспечение, в течение многих лет, но затем они добавили вредоносное ПО в него http://forum.daemon-tools.cc/showthread.php?t=30115 и https://www.reddit.com/r/ pcmasterrace / comments / 2yt9gb / be_aware_daemon_tools_lite_installs_malware_adware / Я предлагаю вам вместо этого использовать виртуальный clonedrive.

Если вы хотите смонтировать образ, то сначала сделайте это без командного файла. И чтобы запустить игру, как только образ смонтирован, запустите его без командного файла.

Как только вы можете сделать это вручную, вы можете попробовать сделать это с командным файлом.

Я получил этот командный файл с форумов программы, которую я использую. Это называется Launchbox, это интерфейс для эмуляторов. Это графический интерфейс, в который вы помещаете несколько файлов игры и выбираете программы для запуска игр. Он прекрасно работает, но этот конкретный эмулятор, SSF, не может самостоятельно читать файлы изображений. Вместо этого они должны быть прочитаны с компакт-диска (или виртуального диска). И именно здесь начинается проблема. HellfireEternal 6 лет назад 0
@HellfireEternal Да, но вам не нужен командный файл для этих целей. Вы можете вручную смонтировать образ. И вы можете вручную запустить эмулятор. Все, что может сделать командный файл, можно сделать вручную. Некоторым старым программам, например, нужен компакт-диск в дисководе или, как в вашем случае, монтирование ISO, чтобы он видел дисковод компакт-дисков. Это можно сделать вручную. barlop 6 лет назад 0
Я получил этот командный файл с форумов программы, которую я использую. Это называется Launchbox, это интерфейс для эмуляторов. Это графический интерфейс, в который вы помещаете несколько файлов игры и выбираете программы для запуска игр. Он прекрасно работает, но этот конкретный эмулятор, SSF, не может самостоятельно читать файлы изображений. Вместо этого они должны быть прочитаны с компакт-диска (или виртуального диска). И именно здесь начинается проблема. Я предполагал, что set game =% 1% часть получает путь к файлу из Launchbox. Проблема с командным файлом, по-видимому, заключается в получении пути к файлу изображения. Есть идеи? HellfireEternal 6 лет назад 0
Я думаю, что игра является ISO. Вы монтируете игру. Затем вы запускаете эмулятор. barlop 6 лет назад 0
Ссылка https://forums.launchbox-app.com/topic/32800-ssf-auto-mountunmount-with-xpadder-command-lines/, если это помогает HellfireEternal 6 лет назад 0
@HellfireEternal парень, задающий вопрос по этой ссылке, говорит, что он может монтировать вещи вручную, и он просто хочет автоматизировать это. Вы даже не показали, что можете установить его вручную. Как я говорю .. Вы должны попробовать это вручную, прежде чем делать пакетный файл. barlop 6 лет назад 0
Да, я могу монтировать образ самостоятельно. Программа launchbox отображает обложку игры, а затем вы нажимаете на обложку игры, и игра запускается с правильной программой или эмулятором. Поэтому мне нужен командный файл для автоматизации процесса монтирования в зависимости от того, какую игру я нажимаю. HellfireEternal 6 лет назад 0
@HellfireEternal. Смотрите здесь, чтобы получить справку по команде для конкретного приложения, так как вы понимаете, как это работает лучше всего, поскольку вы получили скрипт с форума http: //daemon-help.com/addition/command / ... так вы можете прочитать и тестируйте до тех пор, пока вы не заработаете, как ожидалось, а затем вы сможете написать, что работает в вашей системе. Если у вас возникли проблемы с его запуском, так как подтверждение синтаксиса правильное, тогда нам нужно понять, как вы выполняете процесс, и, возможно, что-то на этом уровне. Протестируйте команды и т. Д., И сначала получите подтверждение, что работаете вручную. Pimp Juice IT 6 лет назад 0
Может быть и здесь: http://daemon-help.com/ но я уверен, что вы поняли Pimp Juice IT 6 лет назад 0
@PimpJuiceIT Кроме того, daemontools имеет действительно приятный простой графический интерфейс, например, основной интерфейс, который используют люди, это графический интерфейс, и он позволяет очень легко монтировать ISO. По какой-то причине он даже не использует это ... большинство людей использует графический интерфейс .. это проще, чем использовать командную строку для загрузки ISO. Надо действительно уметь это использовать и понимать перед командной строкой. barlop 6 лет назад 0
@ barlop Я считаю, что есть недоразумение, я смог смонтировать образ с графическим интерфейсом Daemontools перед отправкой этого вопроса. Несмотря на это, команда echo помогла мне увидеть переменные для устранения неполадок, что помогло мне, спасибо! В конце концов проблема была просто в том, что я указывал на неверный исполняемый файл. Аргументы командной строки должны быть переданы DTagent.exe, а не DTlite.exe. Итак, вот и конечный результат ... HellfireEternal 6 лет назад 0
set game =% 1% set daemon = "C: \ Progr ... Lite \ DTagent.exe" set emu = "C: \ Users \ ... er \ SSF.exe"% daemon% -mount scsi, R, % game%% emu%% daemon% - удалить R выход HellfireEternal 6 лет назад 0
@HellfireEternal Рад, что он работает, но попробуйте% 1 вместо% 1%. Я заметил, что% 1% может работать ... но я не думаю, что это правильно. В качестве примера попробуйте это .. создайте командный файл с надписью `echo% 1% 2` против` echo% 1%% 2% `и попробуйте` echo% 1% 2` против `echo% 1 %% 2%` Назовите его, передавая два параметра, например, `blah.bat ab`. Посмотрите, что с% 2% дают забавный результат. Те с% 2 в порядке. Точно так же, даже если он работает с% 1, он все равно должен быть% 1, а не% 1%, который, если он работает, работает по счастливой случайности. barlop 6 лет назад 0

Похожие вопросы