- 締切済み
バッチによるショートカットのプロパティの変更
タイトルが結構曖昧ですが、以下のことがバッチ処理で 可能かどうかお教えください。 ・ショートカットアイコンのプロパティの中身を (リンク先の部分を)変更できるのかどうか。 こんなもんバッチ使う必要無いでしょうが・・・と 言われそうですが、PCの知識が全く無い事務系の 方のために作成する必要に迫られまして・・・・。 もし可能でしたら、参考サイト等お教えください。 「そんなことはできん」ということをご存知の方 いらっしゃいましたら、その旨お教えください。 宜しくお願い致します。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- ittochan
- ベストアンサー率64% (2667/4137)
>宜しくお願い致します。 ('◇')ゞラジャ >(リンク先の部分を)変更できるのかどうか WSHなら(Windows98以降のOSには標準装備) CreateShortcut メソッドの TargetPath を使用してね。
- popesyu
- ベストアンサー率36% (1782/4883)
1番ですが。 まさかそんな面倒なことをやりたがっているとは思っていなかったのですっ飛ばして新規に作るという前提でアドバイスしてしまいましたが、本当に既存ショートカットファイルから値を取得して作り直したいということであれば、IShellLinkインターフェースを利用すれば可能です。 VCとかVBでも利用できるDLLがあるようです。 でやっぱりお手軽に作る方法をお勧めしますけど。 ショートカットファイルと別に設定を保存するiniファイルを作って設定(パラメータ)はそちらから読み取るようにしてそのつど新規に作り直すとか。 初回だけは手作業で行う必要があるでしょうが、2回目以降は自動化できるんじゃないかなと。こちらならwshでも十分に出来ますし。
- hofuhofu
- ベストアンサー率70% (336/476)
一応WSHでできるようです。 Set WShell = WScript.CreateObject("Wscript.Shell") Set lnk = WShell.CreateShortcut("ショートカットのファイル名") とすると、ちゃんとlnkにショートカットの内容が反映されました。 マイクロソフトも勘違いしそうな名前をつけてくれますね。 ショートカットのオプションはArgumentsプロパティ(lnk.Argumentsといった形で指定)に格納されているので、これを目的の内容に変更してから、Saveメソッド(lnk.Save)で保存してやればできると思います。 Set WShell = WScript.CreateObject("Wscript.Shell") Set lnk = WShell.CreateShortcut("ショートカットのファイル名") lnk.Arguments = 新しいパラメータ lnk.Save
- neKo_deux
- ベストアンサー率44% (5541/12319)
#1の意見を補足すると、 ショートカットの概念はWindows3.1以降に導入されたものですので、それ以前のMS-DOSを踏襲しているコマンドプロンプトではショートカットの操作に関しての処理が整備される事はありませんでした。 -- 質問者さんのやりたい事を実現する手段としては、 ・#2のような外部コマンド(?)やスクリプトを使う。 但し、ショートカットの新規作成は出来ても、リンク先の変更が出来るかどうかは不明。 ・自分で外部コマンド相当のプログラムを作成。 などになると思います。 ショートカットの属性って、 ・リンク先 ・アイコン ・キーボードショートカット ・読取専用、コメント などだと思いますが、「リンク先の部分だけを変更したい」というのはそれ以外で壊れると困る項目があるから? その項目が固定であれば、別途指定して新規に作るほうが早いのでは?
- 7_7_7
- ベストアンサー率24% (115/469)
なにか無意味のような気がします。 もし一連の作業をしたければバッチファイルを作ってそれのショートカットを作ればどうでしょう。 hameggsさんのレベルがわからないので誠に申し訳ない質問ですが バッチファイルの作り方はわかりますよね?
- popesyu
- ベストアンサー率36% (1782/4883)
コマンドプロンプトでショートカットを作るのは無理でしょう。 但し、参考URLのソフトのような「任意のショートカットファイルを作成できるコマンドモジュール」を使えばいけるのではないかなと思いますが。 あるいはwshで自作するとか http://member.nifty.ne.jp/aya/wsh/wsh10.htm
補足
新規にショートカットを作成することはできない状態で です。ショートカットのリンクのパラメータを修正した いのですが、そのパラメータが個々の環境によって微妙 に違うのです。 やはり根本的に無理でしょうか・・・・。
補足
お二方、回答ありがとうございます。 初歩的なバッチの作り方はわかりますが・・・正直、知識があるとは 言えません。それゆえに「どんなことまでで可能なのか」ということが 分からない状況でもあります。No2さんがおっしゃるとおり「無意味」 と言えばある意味、無意味かもしれません。 No1さんも仰られていますが、「新しくショートカットを生成」は できません。既存のショートカットのリンクのパラメータを読み取 ってそのパラメータに修正が必要であれば、修正を掛けたいのです が、そのパラメータが個々の環境によって微妙に違うのです。 リンク先はこんな感じです。 \\Server\DirA\SubDirB\○○○.exe PARAM1=SSS PARAM2=TTT PARAM3=UUU... 根本的に「バッチがわかってない」と言われて反論はできませんが・・・。 レジストリ読み込んで値を変更できるのだから、ショートカットの プロパティのリンク先の部分を読んで値を変更できないかなぁ・・・ と安易に考えていました。やはり根本的に無理でしょうか?