2013-01-14 15 views
7

Il mio obiettivo è quello di aggiungere un paio di eseguibili sul mio cammino (per esempio, cromo), in modo che io possa chiamareCMD di Windows: come creare un collegamento simbolico al file eseguibile?

> chrome 

dal prompt dei comandi e che lancerà Chrome.

So che potrei aggiungere la directory contenente Chrome al mio percorso (set PATH=%PATH%<chrome_path_here>;), ma dato che ho alcuni file eseguibili che voglio aggiungere, preferirei creare una nuova directory bin che contenga collegamenti simbolici agli eseguibili attuali e solo aggiungi quella singola directory al mio PERCORSO.

Il Chrome eseguibile si trova a

C:\Program Files (x86)\Google\Chrome\Application\chrome.exe 

Così ho provato

> mklink chrome.exe "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" 

che crea con successo un collegamento simbolico per i file (dice così in uscita, e dopo aver esaminato con > dir). So che il mio PERCORSO è impostato correttamente, b/c quando corro > where chrome trova il mio nuovo collegamento simbolico.

Tuttavia, quando provo ad eseguire Chrome con il mio nuovo collegamento, non succede nulla. Dovrebbe apparire una nuova finestra vuota, ma non succede nulla. Nessun messaggio di errore nel prompt dei comandi o nulla.

Cosa sto sbagliando? Sto fraintendendo i collegamenti simbolici in Windows? Questo è l'approccio che uso sempre in Linux, ma sono nuovo di Windows Cmd.

Grazie!

risposta

5

La maggior parte dei programmi non viene eseguita da posizioni diverse da quella di installazione, il che è esattamente ciò che accade quando si tenta di eseguirlo da un collegamento simbolico.

Sarebbe molto più facile creare file CMD/BAT in quella cartella con nomi corrispondenti che lancerà programmi da posizioni che si desidera:

REM chrome.cmd 
start /b cmd /c "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" %* 
+0

Cool, grazie per le informazioni! Inserisco il codice in un file chiamato 'chrome.bat', e ora funziona –

+4

Un'altra opzione sarebbe una scorciatoia, anche se avresti bisogno di aggiungere .lnk alla tua variabile PATHEXT. –

5

Con Windows 7 confermo che link simbolici non funzionano, sono semplicemente ignorati come riportato nella domanda originale.

Come Harry stati nel suo commento, scorciatoie fanno lavoro, e per me sono più semplici e più facile che scrivere uno script separato per ogni nuovo comando voglio abilitare sotto CMD.

Dichiara che è necessario aggiungere .lnk alla variabile PATHEXT per fare ciò. Affermo che questo funziona, e con .lnk aggiunto a PATHEXT posso semplicemente inserire la parte del nome del collegamento per eseguire il comando. Ad esempio se il mio collegamento è chiamato "sublime.lnk" e PATHEXT include .lnk, posso eseguire il collegamento con il semplice comando "sublime". Bello!

In alternativa ho scoperto che PATHEXT non deve essere modificato se si digita semplicemente il nome completo del collegamento, incluso .lnk, al mio prompt CMD. Ad esempio, ho creato una scorciatoia chiamata "sublime.lnk" sotto% HOMEPATH%/bin, che punta a "C: \ Programmi \ Sublime Text 2 \ sublime_text.exe".

Ora posizionando% HOMEPATH% \ bin nel mio% PATH% e posso sublimare tramite il comando "sublime.lnk".

Uno dei due è il modo migliore che io conosca di dare accesso a vari comandi dal file system di Windows da un prompt di CMD. Tuttavia, non sono un esperto di Windows e accolgo con favore una soluzione migliore o più standardizzata a questo problema.


PS: Ho appena scoperto nel modo più duro che è necessario per garantire la "Start in:" la proprietà di qualsiasi collegamento si utilizza in questo modo viene oscurato fuori, o il programma non si avvia nella directory invocare la scorciatoia da.


P.P.S .: In una nota correlata, ho scoperto come eseguire Esplora risorse di Windows (o la sua sostituzione) nella directory la sessione CMD è connesso a: start ..

Problemi correlati