2013-12-12 5 views
2

я написал один лайнер, который позволил мне начать театрализованный и загрузить все .ppk файлы из моей %HOMEPATH%/.ssh папкипакетный скрипт не работает из файла .bat

Вот это:

start pageant && timeout 1 && FOR %k in ("%HOMEPATH%\.ssh\*.ppk") do start pageant %k 

Таймаута есть для предотвращения множественных экземпляров экземпляра (только для WIN7)

Так что это работает, только когда он запускается из командной строки. Начинается сборщик и все ключи загружаются.

Но теперь я хочу поместить его в файл .bat, чтобы его можно было добавить в папку startup.

Я попробовал все эти комбинации:

start pageant && timeout 1 && FOR %k in ("%HOMEPATH%\.ssh\*.ppk") do start pageant %k 

start pageant 
timeout 1 
FOR %k in ("%HOMEPATH%\.ssh\*.ppk") do start pageant %k 

start pageant && timeout 1 && FOR %k in ("C:%HOMEPATH%\.ssh\*.ppk") do start pageant %k 

start pageant 
timeout 1 
FOR %k in ("C:%HOMEPATH%\.ssh\*.ppk") do start pageant %k 

start pageant && timeout 1 && FOR %k in ("C:\Users\Willem\.ssh\*.ppk") do start pageant %k 

start pageant 
timeout 1 
FOR %k in ("C:\Users\Willem\.ssh\*.ppk") do start pageant %k 

Я также попробовал несколько вариантов на FOR и пытавшихся удаление и добавление начать везде. И еще много вариантов, я получаю эту ошибку, когда для петель работает

HOMEPATHk was unexpected at this time. 

Это просто не работает, когда я пытаюсь запустить его через .bat файл. pageant.exe добавляется в мою папку system32, я использую последнюю стабильную версию.

Какая ошибка новобранец, которую я не вижу здесь, что это не будет работать из пакетного файла?

+2

В пакетных файлах для переменных цикла используйте sintax '%% k' –

+0

Это сработало, thx –

ответ

1

Двойное увеличение% до %% во время работы в виде пакетного файла. Это специальный символ и должен быть экранирован при запуске из пакета, объясняя, почему он работает из командной строки, но не из командного файла.

0

Было бы лучше назвать театрализованным с несколькими параметрами, вместо вызова его несколько раз:

pageant %a %b %c %d ... 

Это не запускается больше, если уже открыто.

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