Centrum skryptów - Systemy operacyjne

Jak utworzyć skrót dla pliku wykonywalnego wykorzystującego parametry?

Udostępnij na: Facebook

Skrypciarze odpowiadają na Wasze pytania

Cześć Skrypciarze!

Witamy w rubryce TechNet, w której Skrypciarze z firmy Microsoft odpowiadają na częste pytania dotyczące używania skryptów w administracji systemu. Jeśli macie jakieś pytania z tej dziedziny, zachęcamy do wysłania e-maila na adres: scripter@microsoft.com. Nie możemy zagwarantować odpowiedzi na każde otrzymane pytanie, ale staramy się jak możemy.

Jak utworzyć skrót dla pliku wykonywalnego wykorzystującego parametry?

Cześć Skrypciarze! Pytanie

Cześć, Skrypciarze! Jak stworzyć skrót, w którym ścieżka docelowa jest plikiem wykonywalnym wykorzystującym parametry (na przykład, something.exe -t –s)?

-- MC

Cześć Skrypciarze! Odpowiedź

Cześć, MC. Nie dalej niż tydzień temu zarzekaliśmy się, że wprowadzimy pewne zmiany do naszej rubryki Cześć Skrypciarze; w szczególności, że przestaniemy marnować czas na początku i będziemy zabierać się od razu do rzeczy. Chyba nie musimy mówić tego na głos, każdy widzi, że nam się to nie udało. Obecnie rozważamy wprowadzenie innej zmiany. Sami jeszcze nie wiemy dokładnie jakiej, ale budzi się w nas głębokie poczucie, że tak dalej być nie może i że cos musimy zrobić. Moglibyśmy na przykład zmienić literki pojawiające się przy pytaniu i odpowiedzi (P oraz O), ale na razie nie mamy pomysłu na co. Nie chodzi o to, ze nam się nie podobają, ale czasem trzeba zrobić coś koło siebie, coś dla siebie, coś dla swojego najbliższego otoczenia, żeby życie nie było zbyt monotonne. To przekonanie o potrzebie zmian bierze się stąd, że tak naprawdę Skrypciarze są tak pochłonięci robieniem różnych rzeczy dla innych, że zaczyna doskwierać im tęsknota za satysfakcją ze zrobienia czegoś dla siebie. Może to zbyt skomplikowane, ale postarajcie się nas zrozumieć i kiedy w końcu uda nam się coś zmienić, choćby na chwilę, wykażcie się tolerancją i zrozumieniem.

Tymczasem, kontynuujemy nasze dzieło i po raz kolejny odpowiadamy na zadane nam pytanie, a czynimy to przez wzgląd na naszych najdroższych czytelników, dla których zrobilibyśmy wszystko. No może prawie wszystko. Ale jedno na pewno: skrypt, który umożliwia utworzenie skrótu, w którym ścieżka docelowa jest plikiem wykonywalnym wykorzystującym parametry:

Set objShell = CreateObject("Wscript.Shell")

strDesktop = objShell.SpecialFolders("Desktop")



Set objShortcut = objShell.CreateShortcut(strDesktop & "\Test.lnk")

objShortcut.TargetPath = "Notepad.exe"

objShortcut.Arguments = "C:\Scripts\Test.txt"



objShortcut.Description = "Starts Notepad with a file already loaded."

objShortcut.WorkingDirectory = strDesktop



objShortcut.Save

A teraz wyjaśnienia: Na początek tworzymy wystąpienie obiektu Wscript.Shell:

Set objShell = CreateObject("Wscript.Shell")

Następnie pobieramy ścieżkę dostępu do folderu Pulpit, co robimy za pomocą właściwości obiektów powłoki SpecialFolders oraz parametru Desktop:

strDesktop = objShell.SpecialFolders("Desktop")
Uwaga. Na wypadek, gdyby ktoś się zastanawiał dlaczego pobraliśmy ścieżkę dostępu do folderu Pulpit: gdzieś przecież musimy umieścić nasz skrót, więc zdecydowaliśmy się umieścić go na pulpicie.

Teraz wywołujemy metodę CreateShortcut, przekazujemy ścieżkę dostępu do folderu Pulpit oraz wartość \Test.link jako parametru metody:

Set objShortcut = objShell.CreateShortcut(strDesktop & "\Test.lnk")

Chyba nie ma potrzeby wspominać, że Test.lnk to nazwa pliku naszego nowego pliku skrótu. Najwyraźniej jednak znowu wyszliśmy przed orkiestrę i wspomnieliśmy o tym i tak.

Na potrzeby naszego małego próbnego skryptu tworzymy skrót uruchamiający aplikację Notatnik, a następnie plik C:\Scripts\Test.txt. W tym celu przypisujemy plik Notepad.exe do właściwości skrótu TargetPath:

objShortcut.TargetPath = "Notepad.exe"

Chwila, moment. Czyż nie powinniśmy byli przypisać Notepad.exe C:\Scripts\Test.txt do właściwości TargetPath? No cóż, tak myślicie? Być może, ale to zazwyczaj nie działa; ogólnie rzecz biorąc, ścieżka docelowa powinna być wskaźnikiem określonego pliku (lub folderu). W tym wypadku, tym plikiem jest Notepad.exe; dlatego też musimy ustawić ścieżkę TargetPath do pliku Notepad.exe bez uwzględniania parametru C:\Scripts\Test.txt.

Zatem gdzie w końcu umieszczamy nasz parametr? To proste; przypisujemy tę wartość do właściwości Arguments:

objShortcut.Arguments = "C:\Scripts\Test.txt"

To właśnie tu wędrują parametry wiersza polecenia.

Następnie przypisujemy wartości do właściwości Description oraz WorkingDirectory. (Wcale nie musimy tego robić; są to właściwości opcjonalne.) Potem wywołujemy metodę Save i oficjalnie tworzymy nasz nowy skrót na pulpicie:

objShortcut.Save

Jak myślicie, co się stanie, gdy klikniemy dwa razy prawym klawiszem myszy na ten skrót? Już wiecie, nieprawdaż? Otworzy się Notatnik i załaduje plik C:\Scripts\Test.txt. A to przecież dokładnie to, co chcieliśmy osiągnąć.

Mamy nadzieję, że nasi najdrożsi czytelnicy nie są rozczarowani. Jeżeli ktoś czuje niedosyt wiedzy, mamy jeszcze część drugą artykułu o wypalaniu płyt CD w systemie Windows Vista (j.ang.), tudzież wiele informacji dla osób zainteresowanych powłoką Windows PowerShell (j.ang.). Jeżeli to z kolei nie wystarczy, no cóż… to znak, że naprawdę musimy coś zmienić.

 Do początku strony Do początku strony

Centrum skryptów - Systemy operacyjne