web-dev-qa-db-ja.com

Windowsのコマンドラインからショートカットを作成するにはどうすればよいですか?

.batスクリプト(test.bat)にショートカットを作成して、Windows 8のStartupフォルダーにコピーできるようにします。

このコード行を書いてファイルをコピーしましたが、上記のショートカットを作成する方法をまだ見つけていません。スクリプトをコピーするだけであることがわかります。

xcopy "C:\Users\Gabriel\Desktop\test.bat" "C:\Users\Gabriel\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"

あなたは私を助けることができます?

36
Maslor

PowerShellコマンドを使用できます。これをバッチスクリプトに貼り付けると、%~f0内の%userprofile%\Start Menu\Programs\Startupへのショートカットが作成されます。

powershell "$s=(New-Object -COM WScript.Shell).CreateShortcut('%userprofile%\Start Menu\Programs\Startup\%~n0.lnk');$s.TargetPath='%~f0';$s.Save()"

PowerShellを使用しない場合は、mklinkを使用してシンボリックリンクを作成できます。構文:

mklink saveShortcutAs targetOfShortcut

完全な構文についてはコンソールウィンドウのmklink /?を、詳細については このWebページ を参照してください。

バッチスクリプトで、次の操作を行います。

mklink "%userprofile%\Start Menu\Programs\Startup\%~nx0" "%~f0"

作成されるショートカットは従来の.lnkファイルではありませんが、それでも同じように機能するはずです。これは、スタートアップフォルダーと同じドライブから.batファイルが実行されている場合にのみ機能することに注意してください。また、シンボリックリンクを作成するには、明らかに管理者権限が必要です。

43
rojo

純粋なバッチでは実行できません。 shortcutJS.bat を確認してください。これはjscript/batハイブリッドであり、.bat拡張子で使用する必要があります。

call shortcutJS.bat -linkfile "%~n0.lnk" -target  "%~f0" -linkarguments "some arguments"

-helpを使用すると、他のオプションを確認できます(アイコン、管理者権限などを設定できます)。

16
npocmaka

Rohit Sahuの回答は、Windows 10で最もよく機能しました。PowerShellソリューションは実行されましたが、ショートカットは表示されませんでした。 JScriptソリューションにより、構文エラーが発生しました。許可を台無しにしたくないので、mklinkを試しませんでした。

デスクトップにショートカットを表示したかった。しかし、アイコン、説明、作業ディレクトリも設定する必要がありました。 MyApp48.bmpは48x48ピクセルの画像であることに注意してください。 Rohitのソリューションの私のmodは次のとおりです。

@echo off
cd c:\MyApp
echo Set oWS = WScript.CreateObject("WScript.Shell") > CreateShortcut.vbs
echo sLinkFile = "%userprofile%\Desktop\MyApp.lnk" >> CreateShortcut.vbs
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> CreateShortcut.vbs
echo oLink.TargetPath = "C:\MyApp\MyApp.bat" >> CreateShortcut.vbs
echo oLink.WorkingDirectory = "C:\MyApp" >> CreateShortcut.vbs
echo oLink.Description = "My Application" >> CreateShortcut.vbs
echo oLink.IconLocation = "C:\MyApp\MyApp48.bmp" >> CreateShortcut.vbs
echo oLink.Save >> CreateShortcut.vbs
cscript CreateShortcut.vbs
del CreateShortcut.vbs
6
DrFractal

最適な方法は、このバッチファイルを実行することです。メモ帳を開いて、次のように入力します-

@echo off
echo Set oWS = WScript.CreateObject("WScript.Shell") > CreateShortcut.vbs
echo sLinkFile = "GIVETHEPATHOFLINK.lnk" >> CreateShortcut.vbs
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> CreateShortcut.vbs
echo oLink.TargetPath = "GIVETHEPATHOFTARGETFILEYOUWANTTHESHORTCUT" >> CreateShortcut.vbs
echo oLink.Save >> CreateShortcut.vbs
cscript CreateShortcut.vbs
del CreateShortcut.vbs

Windows XPでは、filename.batとして保存(すべてのファイルタイプを選択して保存する際は注意してください)がうまく機能しました。

5
Rohit Sahu

link.vbs

set fs  = CreateObject("Scripting.FileSystemObject")
set ws  = WScript.CreateObject("WScript.Shell")
set arg = Wscript.Arguments

linkFile = arg(0)

set link = ws.CreateShortcut(linkFile)
    link.TargetPath = fs.BuildPath(ws.CurrentDirectory, arg(1))
    link.Save

コマンド

C:\dir>link.vbs ..\shortcut.txt.lnk target.txt
4
CodeFu

デスクトップショートカットを作成するために、小さなハイブリッドスクリプト[BAT/VBS]を紹介します。もちろん、目的に合わせて変更できます。

@echo off
mode con cols=87 lines=5 & color 9B
Title Shortcut Creator for your batch and applications files by Hackoo 2015
Set MyFile=%~f0
Set ShorcutName=HackooTest
(
echo Call Shortcut("%MyFile%","%ShorcutName%"^)
echo ^'**********************************************************************************************^)
echo Sub Shortcut(ApplicationPath,Nom^)
echo    Dim objShell,DesktopPath,objShortCut,MyTab
echo    Set objShell = CreateObject("WScript.Shell"^)
echo    MyTab = Split(ApplicationPath,"\"^)
echo    If Nom = "" Then
echo    Nom = MyTab(UBound(MyTab^)^)
echo    End if
echo    DesktopPath = objShell.SpecialFolders("Desktop"^)
echo    Set objShortCut = objShell.CreateShortcut(DesktopPath ^& "\" ^& Nom ^& ".lnk"^)
echo    objShortCut.TargetPath = Dblquote(ApplicationPath^)
echo    ObjShortCut.IconLocation = "Winver.exe,0"
echo    objShortCut.Save
echo End Sub
echo ^'**********************************************************************************************
echo ^'Fonction pour ajouter les doubles quotes dans une variable
echo Function DblQuote(Str^)
echo    DblQuote = Chr(34^) ^& Str ^& Chr(34^)
echo End Function
echo ^'**********************************************************************************************
) > Shortcutme.vbs
Start /Wait Shortcutme.vbs
Del Shortcutme.vbs
::***************************************Main Batch*******************************************
cls
echo Done and your main batch goes here !
echo i am a test 
Pause > Nul
::********************************************************************************************
2
Hackoo

NirsoftのNirCMDは、コマンドラインからショートカットを作成することもできます。 (他の機能の山とともに。)無料で利用できるここで:

http://www.nirsoft.net/utils/nircmd.html

完全な手順はこちら: http://www.nirsoft.net/utils/nircmd2.html#using (「ショートカット」セクションまでスクロールします。)

はい、nircmdを使用することは別のサードパーティの.exeを使用していることを意味しますが、上記のソリューションのほとんどではない機能を実行できます(たとえば、複数のアイコンを持つdllのアイコン#を選択し、ホットキーを割り当てます) 、ショートカットターゲットを最小化または最大化するように設定します)。

上記のshortcutjs.batソリューションでもそのほとんどを実行できるように見えますが、これらの設定を適切に割り当てる方法を見つけるには、さらに掘り下げる必要があります。 Nircmdはおそらくもっと簡単です。

2

.URLファイルを使用している、ここで言及されていない別のソリューションを提案したいと思います。

set SHRT_LOCA=%userprofile%\Desktop\new_shortcut2.url
set SHRT_DEST=C:\Windows\write.exe
echo [InternetShortcut]> %SHRT_LOCA%
echo URL=file:///%SHRT_DEST%>> %SHRT_LOCA%
echo IconFile=%SHRT_DEST%>> %SHRT_LOCA%
echo IconIndex=0>> %SHRT_LOCA%

ノート:

  • デフォルトでは、.urlファイルはWebページを開くことを目的としていますが、適切に構築されたURIに対しては正常に機能しています。
  • Microsoft Windowsは、「既知のファイルタイプの拡張子を非表示にする」オプションがWindowsエクスプローラーで無効になっている場合でも、.urlファイル拡張子を表示しません。
  • IconFileおよびIconIndexはオプションです
  • 参考として、Edward Blakeの RLファイル形式の非公式ガイド を確認してください。
0
n3vermind