web-dev-qa-db-ja.com

Windowsのコマンドプロンプトから.LNKショートカットを解析するにはどうすればよいですか?

フォルダへのショートカットがあり、コマンドプロンプトから開きたいのですが。コマンドプロンプトをショートカットのターゲットの場所にすぐに変更したい。代わりに、コマンドプロンプトでショートカットを実行しようとすると、Windowsエクスプローラーでフォルダーが開きます。

コマンドプロンプトからショートカットファイル(.LNK)を解析して、ショートカットのターゲットフォルダーに切り替えるにはどうすればよいですか?

2
davexpression

CMDを起動すると、C:\ Users\dave>が表示されますが、cd ../../を押さずにディレクトリをC:\ wamp\wwwに変更したいと思います。そこで、「dave」フォルダに「www」フォルダのショートカットを作成しました。

これは典型的な X-Y問題 です。 CMDをデフォルトではなく常に特定のディレクトリで開きたい場合は、ショートカットのプロパティを次のように変更するだけです。

enter image description here

Windows 7では、コマンドプロンプトのショートカットは通常Start Menu > All Programs > Accessoriesにあるため、ショートカットを右クリックして[プロパティ]を選択し、開始を編集します。お好みのフィールド。


たとえば、d.batという名前のバッチファイルを作成して、1行のcd /d c:\wamp\wwwを含めることもできます。バッチファイルをパスのどこかに配置すると、CMDを開き、dと入力して特定のディレクトリに移動するだけです。同様のソリューションは他にもたくさんあります。


コマンドプロンプトからショートカット(.LNK)ファイルを解析することに完全に固執している場合は、以下をParseLnk.batとして保存し、コマンドから実行します。 ParseLnk <LNK File>としてプロンプトを表示:

@echo off
echo set WshShell = WScript.CreateObject("WScript.Shell")>Tmp.vbs
echo set Lnk = WshShell.Createshortcut(WScript.Arguments(0))>>Tmp.vbs
echo WScript.Echo Lnk.TargetPath>>Tmp.vbs
for /f "delims=" %%d in ('cscript //nologo Tmp.vbs "%~1"') do del Tmp.vbs & cd /d "%%d"
4
Karan

問題は、.lnkファイルがプログラム(Explorer.exe)によって解釈されるドキュメントであると思います。これは、docxファイルがWordなどで処理されるのと同じです。 lnkファイルを解析してcdコマンドを実行するには、なんらかのスクリプトを作成する必要があります。

組み込み、サードパーティ、または自分で作成できるコマンドレットを使用して、PowerShellで(コマンドプロンプトではなく)必要な操作を実行できる可能性がありますが、わかりません。

1
evilspoons

私のように誰かがこの質問にたどり着き、コマンドプロンプトのみを使用して.lnkファイルを解読したい場合は、次のことを試してください。

type mylink.lnk|find "\"
0
krubo