Вземете мъчително прост пакетен файл:
echo hi
pause
Запазете това като test.bat. Сега направете пряк път към test.bat. Пряк път стартира партидния файл, който отпечатва "hi" и след това чака натискане на клавиш, както се очаква. Сега добавете някакъв аргумент към целта на прекия път. Сега имате пряк път към:
%path%\test.bat some args
Пряк път стартира пакетния файл както преди.
Сега стартирайте прекия път като администратор. (Между другото това е в Windows 7.) Можете да използвате или щракване с десния бутон на мишката -> Изпълнение като администратор, или да отидете в свойствата на прекия път и да поставите отметка в квадратчето в секцията за разширени. Кажете на UAC, че всичко е наред и отново прекият път стартира пакетния файл, както се очаква.
Сега променете аргументите в целта на прекия път, за да добавите двойни кавички:
%path%\test.bat "some args"
Сега опитайте прекия път като администратор. Този път не става! Изскача команден прозорец и изчезва твърде бързо, за да видите грешка. Опитах да добавя > test.log 2>&1 към прекия път, но в този случай не се създава регистър.
Опитайте да стартирате същия пряк път (с двойните кавички), но не като администратор. Той изпълнява пакетния файл добре. Така че изглежда поведението не се дължи на параметрите в двойни кавички и не е защото се изпълнява като администратор. Това е някаква странна комбинация от двете.
Опитах също да изпълня същата команда от командния прозорец на администратора. Това изпълни партидния файл, както се очакваше, без грешка. Изпълнението на прекия път от командния прозорец създаде нов команден прозорец, който мига и изчезва. Така че очевидно проблемът е причинен от комбинация от администратор, пряк път и двойни кавички.
Напълно съм потресен, някой има ли представа какво става? Бих искал също заобиколно решение.
%path%\test.bat "some args"
. какво видя? - person ghostdog74   schedule 23.03.2010