.lnk
コマンドラインユーティリティを使用して、別のファイルまたは実行可能ファイルへのショートカットファイル()を作成するにはどうすればよいですか?
(.ink file)
混乱があったので、@ alfasinを追加しました。Shantanuのコメントを反映するために質問を修正しました。「ショートカット」を作成する方法は提供しますが、この特定の質問には答えません。
.lnk
コマンドラインユーティリティを使用して、別のファイルまたは実行可能ファイルへのショートカットファイル()を作成するにはどうすればよいですか?
(.ink file)
混乱があったので、@ alfasinを追加しました。Shantanuのコメントを反映するために質問を修正しました。「ショートカット」を作成する方法は提供しますが、この特定の質問には答えません。
回答:
このサイトには非常に役立つ情報があります:http : //ss64.com/nt/shortcut.html
いくつかありますように思えるshortcut.exe
私が持っていないいくつかのリソースキットでは。
他の多くのサイトで言及されているように、バッチファイルから実行する組み込みの方法はありません。
しかし、あなたはVBスクリプトからそれを行うことができます:
以下のVBscriptのオプションセクションはコメント化されています。
Set oWS = WScript.CreateObject("WScript.Shell") sLinkFile = "C:\MyShortcut.LNK" Set oLink = oWS.CreateShortcut(sLinkFile) oLink.TargetPath = "C:\Program Files\MyApp\MyProgram.EXE" ' oLink.Arguments = "" ' oLink.Description = "MyProgram" ' oLink.HotKey = "ALT+CTRL+F" ' oLink.IconLocation = "C:\Program Files\MyApp\MyProgram.EXE, 2" ' oLink.WindowStyle = "1" ' oLink.WorkingDirectory = "C:\Program Files\MyApp" oLink.Save
したがって、本当に必要な場合は、バッチファイルでVBスクリプトをディスクに書き込み、それを呼び出してから再度削除することができます。たとえば、次のように:
@echo off
echo Set oWS = WScript.CreateObject("WScript.Shell") > CreateShortcut.vbs
echo sLinkFile = "%HOMEDRIVE%%HOMEPATH%\Desktop\Hello.lnk" >> CreateShortcut.vbs
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> CreateShortcut.vbs
echo oLink.TargetPath = "C:\Windows\notepad.exe" >> CreateShortcut.vbs
echo oLink.Save >> CreateShortcut.vbs
cscript CreateShortcut.vbs
del CreateShortcut.vbs
上記のスクリプトを実行すると、デスクトップに新しいショートカットが作成されます。
匿名の投稿者からのより完全なスニペットを次に示します(マイナーな修正で更新されます):
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
SET LinkName=Hello
SET Esc_LinkDest=%%HOMEDRIVE%%%%HOMEPATH%%\Desktop\!LinkName!.lnk
SET Esc_LinkTarget=%%SYSTEMROOT%%\notepad.exe
SET cSctVBS=CreateShortcut.vbs
SET LOG=".\%~N0_runtime.log"
((
echo Set oWS = WScript.CreateObject^("WScript.Shell"^)
echo sLinkFile = oWS.ExpandEnvironmentStrings^("!Esc_LinkDest!"^)
echo Set oLink = oWS.CreateShortcut^(sLinkFile^)
echo oLink.TargetPath = oWS.ExpandEnvironmentStrings^("!Esc_LinkTarget!"^)
echo oLink.Save
)1>!cSctVBS!
cscript //nologo .\!cSctVBS!
DEL !cSctVBS! /f /q
)1>>!LOG! 2>>&1
SET Esc_LinkTarget=%0
、あなたは削除する必要があります"
からecho oLink.TargetPath = oWS.ExpandEnvironmentStrings^(!Esc_LinkTarget!^)
Wscript.Arguments
、コマンドライン引数を取得するために使用した方がはるかに良かったでしょう... lol
powershellを使用した同様のソリューションを次に示します(おそらく、PSでバッチファイル全体を書き直すことができますが、Get It Done™のみを使用する場合は...)
set TARGET='D:\Temp'
set SHORTCUT='C:\Temp\test.lnk'
set PWS=powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile
%PWS% -Command "$ws = New-Object -ComObject WScript.Shell; $s = $ws.CreateShortcut(%SHORTCUT%); $S.TargetPath = %TARGET%; $S.Save()"
ファイルのPSへのパスを明示的に指定する必要があるかもしれませんが、機能するはずです。このオブジェクトを通じてマングルできる追加の属性もいくつかあります。
Name MemberType Definition
---- ---------- ----------
Load Method void Load (string)
Save Method void Save ()
Arguments Property string Arguments () {get} {set}
Description Property string Description () {get} {set}
FullName Property string FullName () {get}
Hotkey Property string Hotkey () {get} {set}
IconLocation Property string IconLocation () {get} {set}
RelativePath Property string RelativePath () {set}
TargetPath Property string TargetPath () {get} {set}
WindowStyle Property int WindowStyle () {get} {set}
WorkingDirectory Property string WorkingDirectory () {get} {set}
shortcut.exeに加えて、NirCmdのコマンドラインバージョンを使用してショートカットを作成することもできます。 http://nircmd.nirsoft.net/shortcut.html
mklinkコマンドを使用してはどうですか?C:\ Windows \ System32> mklinkシンボリックリンクを作成します。
MKLINK [[/ D] | [/ H] | [/ J]]リンクターゲット
/D Creates a directory symbolic link. Default is a file
symbolic link.
/H Creates a hard link instead of a symbolic link.
/J Creates a Directory Junction.
Link specifies the new symbolic link name.
Target specifies the path (relative or absolute) that the new link
refers to.
ここで行ったすべての議論の後、これが私の推奨される解決策です。ダウンロード:http : //optimumx.com/download/Shortcut.zipを
デスクトップに展開します(たとえば)。次に、scrum.pdfというファイル(デスクトップ上にもあります)のショートカットを作成するとします。1。CMDを
開き、デスクトップフォルダーに移動します
2.実行します:Shortcut.exe /f:"%USERPROFILE%\Desktop\sc.lnk" /a:c /t:%USERPROFILE%\Desktop\scrum.pdf
デスクトップにsc.lnkというショートカットが作成され、元のファイル(scrum.pdf)を指すようになります。
この無料プログラムには、http://www.nirsoft.net/utils/nircmd2.htmlの機能が必要です:(前述のWebページのサンプル)
"Create a shortcut to Windows calculator under Start Menu->Programs->Calculators nircmd.exe shortcut "f:\winnt\system32\calc.exe" "~$folder.programs$\Calculators" "Windows Calculator"
私が試してみるサンプル:nircmd.exeショートカット "c:\ windows \ system32 \ calc.exe" "〜$ folder.desktop $" "Windows Calculator"
私はこのトピックが古いことを知っていますが、私のために働いた簡単な解決策を提供したかったです。
最初に.icoファイルをC:ドライブにコピーしました。次に、デスクトップにショートカットを作成し、C:ドライブのicoファイルにアイコンを設定しました。次に、.icoとショートカットの両方を、ユーザーがアクセスできるネットワーク共有にコピーしました。そこで、次のバッチファイルを作成して、icoと.urlをユーザーのWindows 7デスクトップにコピーしました。これにより、すべてのユーザーのデスクトップにショートカットが作成され、ショートカットの作成時に設定したアイコンファイルが保持されます。これが誰かの助けになることを願っています。
@echo off
Copy "\\sharename\folder\icon.ico" "C:\"
pause
copy "\\sharename\folder\shortcut.url" "C:\Users\All Users\Desktop"
pause