• 締切済み

バッチによるショートカットのプロパティの変更

タイトルが結構曖昧ですが、以下のことがバッチ処理で 可能かどうかお教えください。 ・ショートカットアイコンのプロパティの中身を  (リンク先の部分を)変更できるのかどうか。 こんなもんバッチ使う必要無いでしょうが・・・と 言われそうですが、PCの知識が全く無い事務系の 方のために作成する必要に迫られまして・・・・。 もし可能でしたら、参考サイト等お教えください。 「そんなことはできん」ということをご存知の方 いらっしゃいましたら、その旨お教えください。 宜しくお願い致します。

みんなの回答

  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.6

>宜しくお願い致します。 ('◇')ゞラジャ >(リンク先の部分を)変更できるのかどうか WSHなら(Windows98以降のOSには標準装備) CreateShortcut メソッドの TargetPath を使用してね。

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.5

1番ですが。 まさかそんな面倒なことをやりたがっているとは思っていなかったのですっ飛ばして新規に作るという前提でアドバイスしてしまいましたが、本当に既存ショートカットファイルから値を取得して作り直したいということであれば、IShellLinkインターフェースを利用すれば可能です。 VCとかVBでも利用できるDLLがあるようです。 でやっぱりお手軽に作る方法をお勧めしますけど。 ショートカットファイルと別に設定を保存するiniファイルを作って設定(パラメータ)はそちらから読み取るようにしてそのつど新規に作り直すとか。 初回だけは手作業で行う必要があるでしょうが、2回目以降は自動化できるんじゃないかなと。こちらならwshでも十分に出来ますし。

参考URL:
http://www.runan.net/program/tips/_interface/IShellLink.shtml
  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.4

一応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

参考URL:
http://www.microsoft.com/japan/msdn/library/ja/script56/html/wsObjWshShortcut.asp
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.3

#1の意見を補足すると、 ショートカットの概念はWindows3.1以降に導入されたものですので、それ以前のMS-DOSを踏襲しているコマンドプロンプトではショートカットの操作に関しての処理が整備される事はありませんでした。 -- 質問者さんのやりたい事を実現する手段としては、 ・#2のような外部コマンド(?)やスクリプトを使う。  但し、ショートカットの新規作成は出来ても、リンク先の変更が出来るかどうかは不明。 ・自分で外部コマンド相当のプログラムを作成。 などになると思います。 ショートカットの属性って、 ・リンク先 ・アイコン ・キーボードショートカット ・読取専用、コメント などだと思いますが、「リンク先の部分だけを変更したい」というのはそれ以外で壊れると困る項目があるから? その項目が固定であれば、別途指定して新規に作るほうが早いのでは?

  • 7_7_7
  • ベストアンサー率24% (115/469)
回答No.2

なにか無意味のような気がします。 もし一連の作業をしたければバッチファイルを作ってそれのショートカットを作ればどうでしょう。 hameggsさんのレベルがわからないので誠に申し訳ない質問ですが バッチファイルの作り方はわかりますよね?

hameggs
質問者

補足

お二方、回答ありがとうございます。 初歩的なバッチの作り方はわかりますが・・・正直、知識があるとは 言えません。それゆえに「どんなことまでで可能なのか」ということが 分からない状況でもあります。No2さんがおっしゃるとおり「無意味」 と言えばある意味、無意味かもしれません。 No1さんも仰られていますが、「新しくショートカットを生成」は できません。既存のショートカットのリンクのパラメータを読み取 ってそのパラメータに修正が必要であれば、修正を掛けたいのです が、そのパラメータが個々の環境によって微妙に違うのです。 リンク先はこんな感じです。 \\Server\DirA\SubDirB\○○○.exe PARAM1=SSS PARAM2=TTT PARAM3=UUU... 根本的に「バッチがわかってない」と言われて反論はできませんが・・・。 レジストリ読み込んで値を変更できるのだから、ショートカットの プロパティのリンク先の部分を読んで値を変更できないかなぁ・・・ と安易に考えていました。やはり根本的に無理でしょうか?

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

コマンドプロンプトでショートカットを作るのは無理でしょう。 但し、参考URLのソフトのような「任意のショートカットファイルを作成できるコマンドモジュール」を使えばいけるのではないかなと思いますが。 あるいはwshで自作するとか http://member.nifty.ne.jp/aya/wsh/wsh10.htm

参考URL:
http://www.vector.co.jp/soft/win95/util/se201380.html
hameggs
質問者

補足

新規にショートカットを作成することはできない状態で です。ショートカットのリンクのパラメータを修正した いのですが、そのパラメータが個々の環境によって微妙 に違うのです。 やはり根本的に無理でしょうか・・・・。

関連するQ&A