デスクトップのファイルを全部チェック | 飲・食・遊・ダイエット・走・育な日々

デスクトップのファイルを全部チェック

サーバーの移行に伴って、サーバーにあるファイルへの

ショートカットがリンク切れとなる障害が発生する

ショートカットのリンクが切れているからといって、

普通にPCを触っている人なら、たいした問題とは

ならないのだが、ショートカットがなにかという

こと自体を知らない人にとっては、リンク先へ

いけないことはとても大問題になってしまう。

そこで、デスクトップとマイドキュメントにある

ショートカットファイルだけに絞って、リンク先を

変更してしまおう!ヾ(@°▽°@)ノ

っと考えた。

先日から使っている、VBScriptだ!ヘ(゚∀゚*)ノ

便利だし、アプリじゃないし、ループ処理さえ間違え

無ければ、簡単すぎるほど簡単だし!!

というわけで、フォルダ内のファイルを列挙する

方法の応用でショートカットファイルだけリンク先の

変更をやってみよう!( ̄ー☆

'Shellスクリプトを呼び出す。
Set ws = WScript.CreateObject("WScript.Shell")
Set Shell = CreateObject("Shell.Application")

'デスクトップフォルダをオブジェクトとしてセットする
Set objFolder = Shell.NameSpace(0)

'デスクトップのアイテムコレクション
Set objFolderItems = objFolder.Items()

'コレクションをForEachでループしてファイルを見る
For Each item in objFolderItems
 'ファイル名を格納
str = objFolder.GetDetailsOf(item, 0)
 
 'ショートカットファイルだった場合、
 'リンク先変更のSubプロシージャを実行する
If objFolder.GetDetailsOf(item, 2) = "ショートカット" Then
  'デスクトップフォルダパスを格納
desktop = ws.SpecialFolders("Desktop")
  'Subプロシージャを呼び出し
Call ChangeTarget(str, desktop)
End If

Next

MsgBox "完了"

Set objDocuFolderItems = Nothing
Set objDocuFolder = Nothing
Set objFolderItems = Nothing
Set objFolder = Nothing
Set Shell = Nothing
Set ws = Nothing


'Sub プロシージャ
Sub ChangeTarget(StrFileName, FdrPath)

' ショートカット作成(既存ファイルは上書きします。)
Set shortcut = ws.CreateShortcut(FdrPath & "\" & StrFileName & ".lnk")

lnk = "リンク先"

  shortcut.TargetPath = lnk
  shortcut.Save

Set shortcut = Nothing

End Sub

以上です。

デスクトップフォルダをオブジェクトとして

格納するのがポイントかな?

オブジェクトとしてしまえば、その中のファイル達を

メンバとして列挙できるので、それに対して

ループ処理でやっちゃえばいいのだ!

我ながら・・・う~ん・・・

こんなことはみんなやっているかぁ~

まぁ、オレ的には満足として・・・・

よし!やった。やったはず。。。( ̄∇ ̄+)

これで、移行後のフォローが楽になった!

いい仕事したぞ・・・・・・・・はず・・・

最速攻略 VBScriptサンプル大全集/結城 圭介

¥2,919
Amazon.co.jp