Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno bat soubor vs. tvorba zástupce adresáře

Potřeboval bych poradit, jak nějakým šikovným způsobem vyřešit, nejlépe pomocí bat souboru vytvoření zástupce na ploše, určitého adresáře na disku.
Jde o situaci, kdy si úplný laik nainstaluje program pomocí instal. menu na CD na svůj počítač a potřebuje se dostat snadno do adresáře s programem, kde si může snadno vkládat svoje soubory, popřípadě si je dát na jiné médium. Tzn., že instalátor nainstaluje všechny soubory a adresáře programu na disk, kde cesta k potřebnému adresáři je vždy stejná "C:\Program Files\ProgramXY\Data a po kliknutí na tlačítko v menu instal CD se automaticky vytvoří na ploše zástupce požadované složky Data.
Chápu, že to mnohým přijde hloupé, ale když jsem zjistil, že i vytvoření zástupce nějakého adresáře může být pro některé uživatele PC problém, protože jsou zvyklí vše spouštět pouze z plochy nebo přes nabídku Start, rozhodl jsem se pro tento způsob řešení, než zdlouhavě někomu vysvětlovat, jak se dostat do potřebného adresáře na disku pomocí průzkumníka, natož jiného souborového manažeru. Když bude mít zástupce této složky na ploše, tak jej otevřít už snad nebude pro takové uživatele problém :-)
Kdyby někdo uvedl funkční syntaxi byl bych mu vděčný, případně měl lepší nápad, jak to vyřešit.

Předmět Autor Datum
nevím jak v .bat, ale neměl by být problém vytvořit zástupce ve wsh (script) Nejsem si jist, ale moh…
dokonalepc.cz 11.02.2010 22:27
dokonalepc.cz
co tohle: xxcopy38.htm :?:
touchwood 11.02.2010 22:40
touchwood
Díky moc, vyzkouším obě uvedené varianty :-)
Craft 11.02.2010 23:44
Craft
a když bude vzorový zástupce (.lnk soubor) v instalačním adresáři připravený, a příkaz copy ho jen n…
lední brtník 12.02.2010 00:40
lední brtník
Stačí když tam bude relativní cesta %ProgramFiles%\7-Zip
kmochna 12.02.2010 05:48
kmochna
Předkládám funkční script: Set WshShell = WScript.CreateObject("WScript.Shell") DesktopPath = WshSh…
dokonalepc.cz 13.02.2010 14:09
dokonalepc.cz
Skvělá práce, funguje to naprosto perfektně, díky moc :-):beer: poslední
Craft 13.02.2010 14:31
Craft

nevím jak v .bat, ale neměl by být problém vytvořit zástupce ve wsh (script)
Nejsem si jist, ale mohlo by to být nějak takhle:

WshShell = CreateObject("Wscript.shell")
strDesktop = WshShell.SpecialFolders("Desktop")
oMyShortcut = WshShell.CreateShortcut(strDesktop + "\jmeno.lnk")
oMyShortcut.IconLocation = "C:\myicon.ico"
OMyShortcut.TargetPath = "%PROGRAMFILES%\ProgramXY\DATA"
oMyShortCut.Save

Pokud nechceš jinou ikonu, tak můžeš vynechat řádek "oMyShortcut.IconLocation = "C:\myicon.ico""

Proměnná "%PROGRAMFILES%" je standardně c:\Program Files nikde ale není psáno, že nainstalovaný program nemusí být na jiném disku :-)
vymazaná reklama (los)

a když bude vzorový zástupce (.lnk soubor) v instalačním adresáři připravený, a příkaz copy ho jen nakopíruje?
ale neošetřuje to stav, kdy mají lidi nainstalované windows jinde než na c: - a že jsou vynalézaví :(
vidím že lepší je ten xxmklink.

Předkládám funkční script:

Set WshShell = WScript.CreateObject("WScript.Shell")
DesktopPath = WshShell.SpecialFolders("Desktop") 
Lnk_Title = "\Jméno_zástupce.lnk"
Set ShortCut = WshShell.CreateShortCut(DesktopPath & Lnk_Title)
ShortCut.TargetPath = WshShell.ExpandEnvironmentStrings("%PROGRAMFILES%\  ProgramXY\DATA\")
ShortCut.Save 

Pokud by zástupce měli mít na ploše všichni uživatelé, tak by druhý řádek vypadal takto:

DesktopPath = WshShell.SpecialFolders("AllUsersDesktop")

Stačí Ctrl+C a Ctrl+V, vložit do notepadu, v notepadu uložit a přejmenovat příponu .txt na .vbs
vymazaná reklama (los)

Zpět do poradny Odpovědět na původní otázku Nahoru