Я пытался создать ярлык для запуска командного файла на одну папку из места ярлыка. Я не смог найти и ответить на это.

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

@echo off
FOR %%V IN ("%~dp0..\") DO set curdrv=%%~dpV
start "" %curdrv%Oneup.bat

И цель ярлыка:%windir%\system32\cmd.exe /c Intermediate.bat

и «Старт в» остается пустым.

Таким образом, я могу переместить эти папки в любое место на диске или другом диске, и ярлык все еще работает. Тем не менее, я хотел бы пропустить файл Intermediate.bat и запустить Oneup.bat напрямую. Я старался:

%windir%\system32\cmd.exe /c FOR %%V IN ("%~dp0..\") DO set curdrv=%%~dpV && start "" %curdrv%Oneup.bat

в Цель ярлыка, но это не работает.

Есть ли какая-то хитрость, чтобы заставить это работать? Спасибо

1 ответ1

1

Я хотел бы пропустить файл Intermediate.bat и запустить Oneup.bat напрямую.

Я старался:

%windir%\system32\cmd.exe /c FOR %%V IN ("%~dp0..\") DO set curdrv=%%~dpV && start "" %curdrv%Oneup.bat

в Цель ярлыка, но это не работает.

Существует две проблемы с вышеуказанной командой (которая выполняется в оболочке cmd ):

  1. %% используется внутри командных файлов и % в командной строке.

  2. % 0 (используется в %~dp0) действителен только внутри командного файла.

Вы можете использовать следующую (упрощенную) цель ярлыка:

%windir%\system32\cmd.exe /c start "" ..\Oneup.bat

As ..\ всегда возвращает каталог на один уровень выше текущего каталога.


Дальнейшее чтение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .