Скопируйте .bat с USB и скопируйте его в сценарий папки «Автозагрузка» - WinXP - PullRequest
0 голосов
/ 25 октября 2011

Я разработчик для Mac / iPhone, поэтому я не очень разбираюсь в скриптах Windows ... Дело в том, что мне нужно установить автозагрузку на многих компьютерах, поэтому я хотел бы иметь USB-флешку с двумя файлами .bat:

  1. будет фактическим "приложением"
  2. будет сценарий, который будет копировать 1st.bat с моего USB в папку автозагрузки Windows ...

Как я могу это сделать?

имя моего usb - "USB", а имя моего запускаемого приложения - "startup.bat". Как я уже сказал, я крайне отсталый в программировании на Windows, и он мне очень нужен;)

Большое спасибо!

Ответы [ 3 ]

3 голосов
/ 25 октября 2011

Попробуйте следующий скрипт.Это приведет к запуску приложения при каждом входе в систему текущего пользователя. Без административных привилегий вы не сможете сделать это для всех пользователей за один раз.

@Echo Off
CD /D %~dp0
Set StartupFolder=%AppData%\Microsoft\Windows\Start Menu\Programs\Startup
If Exist "%StartupFolder%" Goto :FoundStartup
Set StartupFolder=%UserProfile%\Start Menu\Programs\Startup
If Exist "%StartupFolder%" Goto :FoundStartup
Echo Cannot find Startup folder.
Exit /B

:FoundStartup
Copy "MyApp" "%StartupFolder%"

Каждая строка выполняет следующие действия:

  1. Отключите отображение команд, чтобы скрипт выглядел более понятным для конечного пользователя.
  2. Установите текущий каталог, где бы ни находился этот скрипт.
  3. Установите путь к папке автозагрузки, как ожидается в Windows Vista или более поздней версии.
  4. Если эта папка существует, перейдите кэтап копирования.
  5. Задайте путь к папке «Автозагрузка», как ожидается в Windows 2000 или более поздней версии.
  6. Если эта папка существует, перейдите к этапу копирования.
  7. Сообщите, что папка «Автозагрузка»не может быть найден.
  8. Выйдите из пакетного сценария.
  9. Метка, к которой можно перейти.
  10. Скопируйте «MyApp» из текущей папки (USB) в папку «Автозагрузка».
1 голос
/ 28 октября 2011

Я не хочу брать кредит за ответ Hand-E-Food, но я выяснил, почему его код не работал, и я не могу ответить на его ответ, так что вот оно.Вместо использования кавычек вокруг переменной %StartupFolder% в строке Copy используйте их вокруг пути для Set StartupFolder.Поэтому код будет выглядеть следующим образом.

@Echo Off
CD /D %~dp0
Set StartupFolder="%AppData%\Microsoft\Windows\Start Menu\Programs\Startup"
If Exist %StartupFolder% Goto :FoundStartup
Set StartupFolder="%UserProfile%\Start Menu\Programs\Startup"
If Exist %StartupFolder% Goto :FoundStartup
Echo Cannot find Startup folder.
Exit /B

:FoundStartup
Copy "MyApp" %StartupFolder%

Единственная причина, по которой я понял это, заключается в том, что он тоже ничего не делает для меня 1008 *, поэтому я попытался удалить кавычки%StartupFolder%, и это привело к сообщению об ошибке, что не удалось найти папку, но, по крайней мере, я знал, что она что-то делает в конце.Как только я понял, что ищет неправильную папку, потому что думал, что имя папки остановилось на первом месте в ее имени, я просто добавил в кавычки и вуаля!

0 голосов
/ 25 октября 2011

Попробуйте это (замените app.bat на то, что называется вашим настоящим приложением). Это должно работать на Windows 2000 и выше.

IF EXIST "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\*.*" COPY APP.BAT "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\"
IF EXIST "C:\Documents and Settings\All Users\Start Menu\Programs\Startup\*.*" COPY APP.BAT "C:\Documents and Settings\All Users\Start Menu\Programs\Startup\"
...