プチIT化 PR

【VBS】ドラッグアンドドロップをコマンドで実現するには?

記事内に商品プロモーションを含む場合があります。
当サイトは、アフィリエイト広告を利用しています。

こんにちは、わたあめです。VBScriptサンプルをみると、「vbsファイルにドロップ&ドラッグして使ってください」という操作説明が書かれていたりしますよね。

悩める人
悩める人
ドロップ&ドラッグではなく、コマンドで実行したいのだけど!

という事もあるかもしれません。私の場合、RPAのシナリオからVBScriptを使いたかったのですが、ドロップ&ドラッグのシナリオを組むのが難しかったため、コマンドプロンプトから実行したかったという背景があります。

簡単に実現できますよ!それでは、いってみましょう。

ドロップ&ドラッグする対象を引数として指定する

単純な話で、ドロップ&ドラッグするファイル等を引数として指定すればOKです。

実例で紹介していきますね。例えば、test.vbsというファイルをドロップ&ドラッグして使うVBSファイルがあったとします。通常の使い方は、test.vbsにファイルをドロップ&ドラッグして利用します。

これを、コマンドプロンプトで実行するには、vbsファイル指定のあとにスペースを入れ、ドロップ&ドラッグをする予定だったファイル名を指定します。

上記のように、test.csvというファイルをドロップ&ドラッグして使うVBSならば、「filePath.vbs test.csv」と言う風にスペースを間に入れて実行すればOKです。

エラー:「操作可能なプログラムまたはバッチファイルとして認識されていません」と出たら

実行するとエラーがでるかもしれません。私の場合、vbsファイルの場所をコマンドプロンプトが認識できていないことが原因でした。

csコマンドを使ってカレントディレクトリ(作業ディレクトリ=vbsファイルがあるフォルダ)へ移動するかvbsファイルをフルパスで指定(test.vbsではなくて、C:¥test.vbsというような形)すると上手くいくことがあります。

思った通りの挙動にならなかったら?

vbsスクリプトは無事に実行できたものの、思っていた結果と違う挙動になるの可能性もなきにしもあらずです。というのも、中のScriptを引数をどう扱うかで変わってくることもあるので。。(そこはもうスクリプトや引数の使い方に依存するので、これが原因ですというのはないのですが。)

例えば、ファイルパスを表示するだと、ドロップ&ドラッグだとフルパスが取得できるのにも関わらず、引数指定だと指定した文字列がそのまま表示されてしまうということもありました。

さいごに

いかがだったでしょうか。ちょっとした疑問だったのですが、記事にしてみました。同じような疑問を持たれた方の参考になれば幸いです。それではまた、次の記事で。