2014-11-14 2 views
0

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

Код:

copy client.exe %USERPROFILE%\Desktop 
%USERPROFILE%\Desktop\client.exe 

Что, кажется, случается, что client.exe действительно скопирован на рабочий стол и побежал, но действует, как будто он находится в директории исходного client.exe

+0

Как вы можете это изменить, и почему вы должны запускать его с рабочего стола? –

+0

Мне достался диспетчер задач, выберите процесс> свойства, и я вижу, где находится файл. –

ответ

1

Проблемы заключается в том, что, что касается партии, текущий каталог находится там, где выполняется пакет.

Если вы хотите, чтобы текущий каталог, чтобы быть на рабочем столе, вы должны явно установить его

copy client.exe %USERPROFILE%\Desktop 
pushd "%USERPROFILE%\Desktop" 
client.exe 
popd 

или

copy client.exe %USERPROFILE%\Desktop 
cd "%USERPROFILE%\Desktop" 
client.exe 

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

+0

Работал как очарование! Но быстрый вопрос, что делает 'popd' и почему окно консоли не закрывается после выполнения? Могу ли я удалить его? –

+0

'pushd' сохраняет текущий каталог в стеке и переключает текущий каталог на цель, указанную в качестве аргумента. 'popd' удаляет последнее имя из каталога и возвращает его обратно. Что происходит после 'popd', я не могу сказать наверняка - это может быть часть-партия или может быть все. Если это все, используйте вторую версию. Версия 'pusd/popd' предназначена для временного изменения текущего каталога при запуске' client', а затем продолжения в исходном каталоге. Он должен дождаться завершения «клиента», а затем закрыть. Что это делает/вы хотите, чтобы это делалось? – Magoo

+0

Я уже объяснял, что хочу, но неважно, что я просто удалил «popd», и он отлично работает по назначению. –

0

Если вы хотите запустить приложение и указать, где файлы будут сохранены (Working Directory), используйте либо

CD /D "%USERPROFILE%\Desktop" 
"full_path_to_app\client.exe" 

или

START "" /D"%USERPROFILE%\Desktop" "full_path_to_app\client.exe" 

Копирование файла .exe кажется само действие.

+0

«Копирование файла .exe кажется ненужным действием». Я специально сказал, что мне нужно его скопировать ... –

Смежные вопросы