19863


Windowsを入れ替えた際にゴミが残るので環境の移行は使わず出来る限り自動化で処理をしたいのですが、その時に使うショートカットを作成するコマンドが標準では見つからずネット上で見つけた以下のスクリプトを使っていました。

### shortcut.vbs

[code]

    set WshShell = WScript.CreateObject("WScript.Shell" )
    set oShellLink = WshShell.CreateShortcut(Wscript.Arguments.Named("shortcut") & ".lnk")
    oShellLink.TargetPath = Wscript.Arguments.Named("target")
    oShellLink.WindowStyle = 1
    oShellLink.Save
    
[/code]

ただ、スクリプトを入れたフォルダにパスを通すなどの作業が先に必要になってきますので、できれば標準のコマンド、もしくは必ずはじめに入れる`scoop`のパッケージの中にそのようなものがあれば知りたいです。

以前探した時は見つかりませんでしたが、Windowsのバージョンアップで何か変わったかと思い質問させていただきました。


CC BY-SA 3.0
2015-12-10T11:12:16.620
19855
2017-04-06T12:21:14.977
2015-12-11T01:42:26.997
4236
3271
question
windows
Windows10の標準コマンド、もしくはscoopを使って入れられるものでショートカットを作成できるものはありますか？


Windows
10にも特には追加されていないように思われますし、`scoop`が何ものかわかりませんでした。（Google検索で17位に[Scoop.it](http://www.scoop.it/)というものはありましたが…）

> 出来る限り自動化で処理

ということですので

> スクリプトを入れたフォルダにパスを通すなどの作業が先に必要

は必須ではなく、`shortcut.vbs`をフルパス指定すればよいのではないでしょうか？  
また自動化ということでなんらかバッチファイルを書かれていると思われますが、そこで`shortcut.vbs`自身を動的に生成してもいいかと

[code]

    >shortcut.vbs  echo set WshShell = WScript.CreateObject("WScript.Shell")
    >>shortcut.vbs echo set oShellLink = WshShell.CreateShortcut(Wscript.Arguments.Named("shortcut") ^& ".lnk")
    >>shortcut.vbs echo oShellLink.TargetPath = Wscript.Arguments.Named("target")
    >>shortcut.vbs echo oShellLink.WindowStyle = 1
    >>shortcut.vbs echo oShellLink.Save
    
[/code]

また自動化処理全体をVBScriptで実装してもいいでしょうし、PowerShellで実装することもできます。PowerShellの場合はVBScriptと同様にCOMオブジェクトを操作できますから`shortcut.vbs`に頼る必要はなく

[code]

    $WshShell = New-Object -ComObject WScript.Shell
    $ShellLink = $WshShell.CreateShortcut("shortcut.lnk")
    $ShellLink.TargetPath = "target"
    $ShellLink.WindowStyle = 1
    $ShellLink.Save()
    
[/code]

とできます。


CC BY-SA 3.0
2015-12-11T02:02:57.327
19863
2015-12-11T02:02:57.327
4236
19855
answer