Проблемы с запуском Batch to EXE с CD - PullRequest
1 голос
/ 20 января 2011

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

START "" "%cd%\MPC-HC\mpc-hc.exe" "%cd%\VideoFiles\01.mp4"

Итак, я попробовал несколько приложений BAT к EXE и обнаружил, что они действительно просто распаковывают BAT и запускают его.Они используют %CD% в качестве своей временной папки, что делает невозможным запуск с диска.

Так что я нашел ExeScript и могу изменить временный каталог ... Единственная проблема?Затем BAT запускается оттуда, что означает, что %CD% бесполезен.

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

for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%a:\01.exe     
set rundir=%%a:
START "" "%rundir%\MPC-HC\mpc-hc.exe" "%rundir%\VideoFiles\01.mp4"

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

На данный момент я даже буду признателен за помощь в том, как написать что-то подобное в C и избежать пакетных файлов все вместе (и, следовательно,беспорядок временных файлов).

Ответы [ 2 ]

0 голосов
/ 17 февраля 2011

Как насчет относительных путей к папкам?

START "" "MPC-HC\mpc-hc.exe" "VideoFiles\01.mp4"

Это должно работать как на HDD, так и на CD.

0 голосов
/ 20 января 2011

Я решил эту проблему, установив версию для жесткого диска и версию для жесткого диска.Самое простое решение.

...