Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Lze dávkově vypsat kam směřují odkazy *.lnk?

Mám home adresář, ve kterém má každý uživatel svůj adresář a přidělenými právy. Kromě to existují v home tématicky zaměřené adreáře, které mají určité skupiny lidí jako společné a ve svém adresáři na ně mají odkaz přes zástupce.

home - user01 - texty
              - tabulky
              - další věci
              - vyroba.lnk
     - user02 - texty
              - tabulky
              - personalistika
              - vyroba.lnk
              - ekonomika.lnk
     - vyroba
     - ekonomika

Problém je v tom, že vyroba.lnk by se měl správně odkazovat na \\serverNT1\home\vyroba, ale občas je vinou nepozornosti administrátora, který link zakládá (tedy mne) ve tvaru d:\home\vyroba

Je nějakým případem možné vypsat cíl + pracovní adresář souborů *.lnk?
Něco jako dir /s d:\home\user??\*.lnk. Potřebuji najít případné chyby a při procházení všech adresářů se mi už u 20 začaly motat prsty.

Díval jsem se do resource kit 2003 server, ale to, co potřebuju jsem tam nenašel. Doufám, že jsem nehledal špatně.

Předmět Autor Datum
tenhle plugin pro TotalCommander umí prohledávat (Alt+F7) .lnk soubory s různými parametry jednotliv…
JoDiK 02.06.2008 15:09
JoDiK
Funguje to přesně tak, jak potřebuji. Děkuji.
yorg 02.06.2008 15:26
yorg
Daj si vyhladat subory *.lnk ktore obsahuju retazec D: Ten link je v .lnk ulozeny nekomprimovane ako…
MM.. 02.06.2008 15:13
MM..
Prípadne môžeš použiť skriptovanie vo Windows (VBScript alebo JScript). WScript.Shell poskytuje metó…
los 02.06.2008 15:28
los
To je fajn, když člověk zná skriptování. Já bohužel ne. :-( A VB script je v OS tak mocný (a nebezpe… poslední
yorg 02.06.2008 20:56
yorg

Daj si vyhladat subory *.lnk ktore obsahuju retazec D:
Ten link je v .lnk ulozeny nekomprimovane ako ASCII.

V linuxe by to bolo IMHO na 3sekundy v commandlajne :-) Len nech ta nenapadne pouzivat vyhladavanie co je vo Windows, to pri hladani podla obsahu polovicu (alebo vsetky :) vyskyty nenajde. Pouzi TotalCommander (Alt-F7).
P.S. alebo skus hladat tie ktore NEobsahuju text \\serverNT1\home\, to sa da v totalcommanderi tiez

Prípadne môžeš použiť skriptovanie vo Windows (VBScript alebo JScript). WScript.Shell poskytuje metódu CreateShortcut, ktorá vytvorí objekt pre prístup k shortcutu. Vlastnosti WorkingDirectory a TargetPath obsahujú to, čo ťa zaujíma.

Jednoduchý príklad (uložiť ako shortcuts.js):

var wsh = new ActiveXObject("WScript.Shell");

while (!WScript.StdIn.AtEndOfStream) {
	var path = WScript.StdIn.ReadLine();
	var link = wsh.CreateShortcut(path);
	WScript.Echo(path);
	WScript.Echo(link.WorkingDirectory);
	WScript.Echo(link.TargetPath);
	WScript.Echo("---");
}

A potom môžeš spustiť:

dir *.lnk /b | cscript shortcuts.js

Ten skript si potom môžeš upraviť tak, aby robil všetko čo potrebuješ automaticky.

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