バッチファイル&VBScriptでフォルダマウントとリネーム処理(パス名変更)を自動化する


業務PCをキッティングする際にいちいちGUIで社内ファイルサーバをネットワークドライブのマウントして...フォルダ名(パス表示)を変更して...っていう作業って面倒ですよね。面倒な作業をぱぱっとバッチファイルとVBScriptでやってしまう方法をお試ししたいと思います。

イメージ

Before

Bfter

今回のゴール

バッチファイルとVBScriptを利用し、ワンクリックで、フォルダマウントおよびマウントしたフォルダのリネーム処理を行う。

前提

  • Windows OS環境
  • ネットワークドライブにマウントできるユーザ権限があること
  • セキュリティソフトなどでVBScriptの動作制限がされていないこと

やってみた

まずネットワークドライブにマウントするためのコマンドを記述したバッチファイルを作りましょう。
メモ帳などを開き、以下コマンドを記述後に、拡張子を[.bat]で保存してください。

#新規にネットワークドライブをマウント
net use Z: \\192.168.0.233\d\大阪本社
#マウントしたフォルダ名(パス名)をVBScriptで「大阪本社(Z:)」に変更
cscript.exe "Renamefolder.vbs" Z "大阪本社"

\192.168.0.233\dの部分は実環境に合わせて変更してください。

次にリネーム処理をするVBScriptファイルを作成します。
同じくメモ帳を開いて、以下コマンドを記述後に、ファイル名=Renamefolderで、拡張子を[.vbs]にして保存してください。
ちなみにVBScriptファイルは以下の中身変えずにこのままで動作します。

' ネットワークドライブのボリュームラベル変更
' 第一引数: ドライブレター 
' 第二引数: 変更したい名前

Dim oParam
Set oParam = WScript.Arguments

strDrive = oParam(0)&":\"
strName = oParam(1)

With CreateObject("Shell.Application").NameSpace(strDrive)
.Items().Item().Name = strName
End With

あとはこの2つのファイルを同じフォルダに格納してください。

バッチファイルを動作させれば、VBScriptファイル(Renamefolder.vbs)を動作させにいき、ワンクリックでマウントしたフォルダをリネーム処理して、フォルダ名(パス名)を変更することができます。

おわりに

他にも色々とやりようはあるのでは?と思いますが私の技術力の問題で、これが限界でしたm(_ _)m
バッチファイルの中のコマンドでフォルダ名リネーム処理までできればいいのですが、仕様上できないみたいですね...なんか方法ないかなと探してたどり着いたのがVBScritpでした。そしてコードの書けない哀れなSEさん(自分)なりに頑張ってみましたので、お役に立てれば幸いです。
コードの書ける人はもっと初心者に優しい記述をお願いしたい(´;ω;`)