お蔵入り

clip!clip!
Ads By Google

VBscriptでコマンドプロンプトを起動させテキストを発行させることで悩んでおります。



コマンドラインのツールを実行させそこへテキストに記述された内容を実行させたいと思っています。

Dim strCOM
For i = 1 to 15
strCOM = "cmd /C C:\○○○○\△△△△.exe
'ここがわかりません
'テキストファイルを流したいのですが・・・・
'コマンド名を仮に@@@@とします。
"@@@@ D:\HEPPOKO" & Right("000" & CStr(i), 4) & ".txt"
'をコマンドライン上に流したいのですが・・・
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.Exec(strCOM)

FileCopy "D:\HEPPOKO" & Right("000" & CStr(i), 4) & ".txt", "D:\終了\HEPPOKO" & Right("000" & CStr(i), 4) & ".txt"
'ここにSleep関数?で5分後とカウントアップにしたいのですが調べてみてもちょっと検討がつかなかったので・・・
'教えていただけないでしょうか?

Next

2008-09-03 23:05の質問
この質問は、30日間解決しなかったために自動的に質問が一旦閉じられました。

回答(1)

1.

2008-09-04 02:05:36ベター
コマンドラインで実行可能なコマンドは、
CMD を起動しなくても実行できます。

ファイルのコピーは、VBScript の中でやった方がいいです。
Set ObjFS = WScript.CreateObject("Scriptting.FileSystemObject")
objFS.CopyFile "コピー元ファイルパス" "コピー先ファイルパス"
の様にします。
(ファイルオブジェクトからもコピーできます)

5分待つ:
WScript.Sleep(300000) '単位はミリ秒
回答レベル : アドバイス
Ads By Google

コメント(11)

#1.  mr_r00
2008-09-04 21:37:51

回答有難うございます。
実は先の質問のHiRDBに関係しています。
まず先にカレントディレクトリをしてからpdsql.exe < D:\HEPPOKO0001.txtとしたいのですがどうしたらよいでしょうか?

#2.  BLUEPIXY
2008-09-05 01:18:59

#1>まず先にカレントディレクトリをして
カレントディレクトリ(作業ディレクトリ)を変更するには、
Set oSh = WScript.CreateObject("WScript.Shell")
oSh.CurrentDirectory = "パス"
のようにします。
パスには、CDコマンドで使えるような相対パスも使えます。

#3.  BLUEPIXY
2008-09-05 02:06:20

#1>pdsql.exe < D:\HEPPOKO0001.txtとしたい
すでに回答で書いたようにコマンドラインと同じで良いです
Set oExec=WshShell.Exec("pdsql.exe < D:\HEPPOKO0001.txt")
の様に実行できます。
標準出力への出力は
oExec.StdOut (出力ストリーム)に出力されることに注意

#4.  mr_r00
2008-09-06 10:36:49

回答ありがとうございます。
どうも先にただカレントディレクトリすると動かないみたい?なんです。
コマンドプロンプトの中でcd /d D:Testに変えた後そこにあるpdsql.exeを実行するために「pdsql.exe < D:\HEPPOKO0001.txtとしてみたいのですがcdが動かない・・・

#5.  mr_r00
2008-09-06 10:38:06

そもそもデバッグの仕方がよくわからなくて・・・
色々すみません

#6.  BLUEPIXY
2008-09-06 16:46:29

>>#4
「cd が動かない」
状況がよくわからないのですが、
推測で・
cd は、cmd.exe の内部コマンドですから、
cmd の配下で使わないといけないですけど、
そのためにスクリプトから cmd を起動してcd を実行しても、新しく起動したcmd にとってのカレントディレクトリを変更しただけなので、cd が事実上効いていないように思われているのではないかと思います。
前にも書きましたが、cd は、スクリプトからではあまり実行する必要はありません。
ワーキングディレクトリを設定する意味でcd するなら、#2のように変更します。
また、
パスの通っていないコマンドを実行するには、
d:\test\pdsql.exe
のようにフルパスを指定した方がいいでしょう。

#7.  mr_r00
2008-09-08 21:47:50

フルパス指定でd:\test\pdsql.exe < < D:\HEPPOKO0001.txtとやってみたのですがpdsql.exeは起動するのですがコマンドが発行されません。
フルパス指定だとダメになってしまうものなのでしょうか?DOS画面は立ち上がりpdsql.exeの立ち上がりも確認できるのですがコマンドだけが何故か・・・???

#8.  mr_r00
2008-09-08 21:48:41

d:\test\pdsql.exe < D:\HEPPOKO0001.txt
訂正です。

#9.  BLUEPIXY
2008-09-09 02:21:33

>>#7
コマンドが発行されたかどうかは、どうやって確認しているのですか?
#3でも書いたように、標準出力(プログラムからの表示)は、.StdOut に出力されているのでは?

#10.  mr_r00
2008-09-09 23:35:31

ありがとうございました。
コマンド発行は出来ました!あと少し足りない部分もありますが一応公開の意味も込めて再度書きます。
あと、HiRDBについて何か書き込んでいただければナレを差し上げれますので・・・感謝しております。

#11.  mr_r00
2008-09-09 23:45:38

トラックバック(2)

トラックバックURL: