• ベストアンサー

vbsファイルにてaiueo.batを昨日の日付にて実行する方法について

vbsファイルにてaiueo.batを昨日の日付(2007 01 27)にて実行するため 下記のようなスクリプトファイルを作成しましたが、 最終行にてエラーにより処理が止まってしまいます。 置換の部分の処理にてエラーが発生しているのはわかっているのですが、 どのように修正を加えればよいのかがわかりません。 ご教授のほど、よろしくお願いします。 ----------------------------------------------------- Option Explicit Dim strValue ' 変換する文字列 Dim strBefore ' 変換前の文字列 Dim strAfter ' 変換後の文字列 strValue = Date() strBefore = "/" strAfter = " " Set wShell = CreateObject("WScript.Shell") Set oExecute = wShell.Exec(aiueo.bat Replace(Date() -1, strBefore, strAfter)) -----------------------------------------------------

質問者が選んだベストアンサー

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.3

No.1です。 aiueo.batの中では、引数をどのように処理しているのでしょうか。 aiueo.bat yyyy mm dd と引数を3つ渡して、バッチ内では%1,%2,%3で受け取っているのならうまくいくはずなのですが、コマンドプロンプトから直接上記コマンドを実行してうまくいくでしょうか。 もしaiueo.batの中で引数全体が1つとして扱われるのであれば、No.2の方の回答のように、"yyyy mm dd"となるようにする必要があります。 その辺の整合性がとれているか、確認してみてはいかがでしょうか。

it2008
質問者

お礼

ようやく原因がわかりました。 aiueo.bat と replace の間に" "が必要でした。 Set oExecute = wShell.Exec("aiueo.bat" & " " & Replace(Date() -1, strBefore, strAfter )) どうもありがとうございました。

it2008
質問者

補足

ご回答ありがとうございます。 >と引数を3つ渡して、バッチ内では%1,%2,%3で受け取っているのならうまくいくはずなのですが、 バッチ内では%1,%2,%3を受け取っております。 実際に直接コマンドを実行してうまくいきます。 教えて頂いたスクリプトを実行すると、 エラー 指定されたファイルが見つかりません。 とでて、下記行が指定されます。 Set oExecute = wShell.Exec("aiueo.bat" & Replace(Date() -1, strBefore, strAfter)) 原因が全く持って不明です。。

その他の回答 (2)

回答No.2

自信ないです。外してたらごめんなさい。 コマンドライン引数は空白で区切られる性質があった気がします。 なので、空白を含むyyyy mm ddのような場合には、 "で囲む必要があるような。。。 試してないのでわかりませんが、次のコードはどうでしょう? ("と"の間で、""を入れると一文字の"として利用されます。) Set oExecute = wShell.Exec("aiueo.bat """ & Replace(Date() -1, strBefore, strAfter) & """")

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

Set oExecute = wShell.Exec(aiueo.bat Replace(Date() -1, strBefore, strAfter)) でなくて、 Set oExecute = wShell.Exec("aiueo.bat " & Replace(Date() -1, strBefore, strAfter)) ではないでしょうか。

it2008
質問者

補足

ご回答ありがとうございます。 教えて頂いた方法にて実行しました。 エラーは発生しませんでしたが、上記構文では"yyyy mm dd"という形式にでaiueo.batを実行しているように見受けられませんでした。 昨日の日付をyyyy mm ddにて取得、 --------------------- aiueo.bat yyyy mm dd --------------------- という形で実行したいのですが、 バッチファイルとVBSを利用して ほかに解決する方法がございましたら教えて頂けないでしょうか? よろしくお願いします。