VBSでコマンド発行したいが・・・

このQ&Aのポイント
  • VBscriptを使用してテキスト内のコマンドを発行する方法が分かりません。
  • DドライブにあるHEPPOKO0001.txt~HEPPOKO0015.txtを順次展開したいです。
  • お手数ですが、ご指示いただけると助かります。
回答を見る
  • ベストアンサー

VBSでコマンド発行したいが・・・

VBscriptでうまいことテキストにあるコマンドを発行できません。 文が全然違う気がしてきて・・・・ Dim strCOM For i = 1 to 15 strCOM = "cmd /C cd /d D:\HEPPOKO & Format("0000", i) & .txt" Set WshShell = CreateObject("WScript.Shell") Set oExec = WshShell.Exec("strCOM ") DドライブにあるHEPPOKO0001.txt~HEPPOKO0015.txtを順次展開したいのですが・・・ どなたかご指示ください。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

Dim strCOM For i = 1 to 15 '==誤== Format関数はVBScriptにはない。文字列の区切りがメチャメチャ strCOM = "cmd /C cd /d D:\HEPPOKO & Format("0000", i) & .txt" '==正== strCOM = "cmd /C cd /d D:\HEPPOKO" _     & Right("000" & CStr(i), 4) & ".txt" '==間違いではないがループ内で毎回やる必要は無い。→ループ外で実行 Set WshShell = CreateObject("WScript.Shell") '==誤== strCOMなどというコマンドは無い Set oExec = WshShell.Exec("strCOM ") '==正== Set oExec = WshShell.Exec(strCOM) >HEPPOKO0001.txt~HEPPOKO0015.txtを順次展開したいのですが・・・ 「展開」というのは何をしたいのでしょう?cdコマンドは カレントディレクトリを変更するので、ファイル名を指定しても エラーになります。それとも"HEPPOKO0015.txt"はフォルダ?

komarimono
質問者

補足

複数のレスになってしまい大変申し訳ありませんでした。 一つに書き直させていただいています。 大変失礼いたしました。 http://oshiete1.goo.ne.jp/qa4303985.html

関連するQ&A

  • VBscriptでコマンドラインへ発行したい

    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

  • 続・VBscriptでコマンドラインへ発行したい

    以前書き込みさせていただきましたが携帯とPCを使ったため間違ってしまい複数の質問を立ててしまいました。 大変申し訳ありませんでした。最初に立てた二つの書き込みは閉じしっかりまとめたものをここに書かさせていただきます。大変申し訳ありませんでした。 不快な思いさせてしまったことは重々承知しておりますが教えていただけないでしょうか? ≪継続URL≫ http://oshiete1.goo.ne.jp/qa4301789.html http://oshiete1.goo.ne.jp/qa4299107.html まずやりたい動作(仕様?)を見直します。 1.コマンドプロンプトを立ち上げる 2.ディレクトリを変更するためカレントディレクトリする。(何故かこうしないとダメ・・・環境変数の設定が不可みたい?) 3.コマンドラインツールを立ち上げテキストに記述されたコマンドを発行させる。 4.テキストの数だけ実行をさせる。 Option Explicit On Error Resume Next Dim objWshShell ' WshShell オブジェクト Dim strNewFolder ' 移動するフォルダ Dim i Dim strEXE Set objWshShell = WScript.CreateObject("WScript.Shell") If Err.Number = 0 Then strNewFolder = "D:\Test" objWshShell.CurrentDirectory = strNewFolder objWshShell.Exec("cmd.exe").StdOut.ReadAll Else WScript.Echo "エラー: " & Err.Description End If For i = 1 to 15 strCOM = "XXXX.exe @ D:\HEPPOKO" & Right("000" & CStr(i), 4) & ".txt" Set oExec = WshShell.Exec(strCOM) WScript.Sleep(300000) Next Set objWshShell = Nothing

  • cscriptで文字変数 に ” を入力するには

    お世話になります。 早速ですが、質問があります。 c:\test\test.exe -path "D:\data" -file "aaa.txt" -flag a というコマンドをcscript のプログラムから起動したいのですが、コマンド文字列を文字列変数に代入する方法 がありましたら、教えてください。 Cscript test.vbs %1 ======================================= Dim WshShell Dim oExec Dim Cmd Dim File File = WScript.Arguments(0) Cmd = "c:\test\test.exe -path "D:\data" -file "a.out" -flag " & File                     ↑↑↑↑                  これができません? Set WshShell = CreateObject("WScript.Shell") set oExec = WshShell.Exec(Cmd) Do While oExec.Status = 0 Wscript.Sleep 100 Loop "も文字列に入力するには、どのようにすればいいでしょうか? ご意見、アドバイスよろしくお願いいたします。

  • vbsスクリプト作成について

    いつもありがとうございます。 今回、知識がないのですが下記のような処理のVBSを作成したく調べております。 (1)test.vbsファイルを実行時にvbsファイルと同じディレクトリに「folder」フォルダを作成 (2)作成した「folder」フォルダにサービス「idsvc」の状態をテキスト形式で「service.txt」として出力 (3)上記と同様の処理(service.txtはリネームする)を現在ログインしているユーザのスタートアップに「start.vbs」として配置 (3)上記処理後、再起動を実施 (4)再起動後、start.vbsを実行後に自動削除 大きく分けて4つの処理を個別に作成して最終1つのファイルとして作成しようと思っております。 なんとかわからいなりに作成してはいるのですが どうしても下記方法がわかりません。 (2)の処理「folder」を作成後、service.txtのパス(最下位行)を変数に入れて出力する方法 (きたないソースで申し訳ないです) ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ' フォルダ作成 '---------------------------------------------- Dim str_Path Dim objFdr Set objFdr = CreateObject("Scripting.FileSystemObject") str_Path = objFdr.CreateFolder(".\folder") Dim WshShell Set WshShell = CreateObject("WScript.Shell") Set objLog = WshShell.Exec("cmd /C ""sc query idsvc | findstr -i state > .\folder\service.txt""") ※サービス出力はvbsでの方法がわからなかったのでcmdを呼び出しています。 (4)再起動後の処理にて、再起動前に作成したフォルダに「service.txt」を出力する方法 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ objVBSFile.WriteLine("On Error Resume Next") objVBSFile.WriteLine("Dim WshShell") objVBSFile.WriteLine("Set WshShell = CreateObject(""WScript.Shell"")") objVBSFile.WriteLine("Set objLog = WshShell.Exec(""cmd /C """sc query idsvc | findstr -i state >C:\services.txt"""")") objVBSFile.WriteLine("Set objFSO = CreateObject(""Scripting.FileSystemObject"")") objVBSFile.WriteLine("objFSO.DeleteFile WScript.ScriptFullName") 他にもわからないことはありますが、調べてなんとかなるとおもっておりますが 上記についてはVBSの理解不足なため、つかめません。 申し訳ありませんが、アドバイス頂けないでしょうか。 以上、宜しくお願い致します。

  • vbsでバックアップデータファイルをlzh形式に自動圧縮したい

    毎日、システムのバックアップデータが、その日の日付をファイル名として作成されます。 このファイルを日々圧縮しているのですが、自動で出来たらと思います。 『教えて!goo』等で調べて何とか書いたのが下のソースです。 StrLzhName = "test.txt.lzh" StrFileName = "test.txt" Set shell = WScript.CreateObject("WScript.Shell") shell.CurrentDirectory = "c:\" Set wShell = CreateObject("WScript.Shell") Set oExec = wShell.Exec("lha32 a -d StrLzhName StrFileName") c:\直下に、lha32.exeと、test.txtを置いてあります。 wShell.Exec()で、変数StrLzhNameと、StrFileNameを直接、 test.txt.lzh、test.txtと指定すると、圧縮できます。 このような変数の使い方は間違っているのでしょうか?? 毎日ファイル名が変わるので、どうしても変数が使いたいのです。 アドバイスよろしくお願いいたします。

  • コマンドプロンプトの出力をVBScript内の変数に代入する

    VBScriptからコマンドプロンプトのver | findstr 5.1を実行し、その出力結果をVBScript内の変数に代入したいのですが、どうすればいいでしょうか? Dim WShell Dim result Set WShell = WScript.CreateObject("WScript.Shell") WShell.Run "cmd /c (ver | findstr XP > " & result & ")" MsgBox result とやってもresultには何も入っていませんでした。

  • VBSでバッチを実行できません。

    C:\temp\test.batをVBSで実行しようとするのですが、 何度やっても実行されません。 想像ですが、c:\WINNT\System32\cmd.exeが動いている ようなのですが、肝心のC:\temp\test.batが動きません。 以下のように記述しました。 Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run ("cmd /c c:\temp\test,0,True") WIN2K、IE6.0の環境です。 どこか記述に誤りでもあるのでしょうか? どうぞよろしくお願いいたします。

  • 緊急です。Wscriptで・・・

    IIS上にあるASPファイルからWscriptを呼び出して、VBで作成したEXEを実行させたいのですが、上手くいきません。コマンドプロンプトから実行させると上手くいくのですが、どうしてでしょうか?ASPはIIS上にあり、test.exeを実行すると別サーバにファイル(例 \\サーバ名\bbb\OK.txt)を作成するといったプログラムです。UNCパス指定だからでしょうか?よろしくお願いします。 ASPファイル内容--------- <%@ language="VBScript"%> <html> <body> テストASP <% Dim WshShell Set WshShell = Server.CreateObject("WScript.Shell") WshShell.Run "\\サーバ名\aaa\test.exe" , 0 , false Set WshShell = Nothing %> </body> </html>

  • VBScript

    下記、プログラムを実行すると、コマンドプロンプトの画面が 消えずに、そのまま残ってしまいます。 どうしたら、画面を消すことができるでしょうか。 お力添えをお願いいたします。 Set WshShell = Wscript.CreateObject("WScript.Shell") Set WshEnv = WshShell.Environment("user") WshEnv("C:\NET\aaa.txt") = "administrator" Wshshell.Run("cmd.exe") WScript.Sleep(500) WshShell.SendKeys("runas /user:administrator " + chr(34) + "xcopy D:\NET\aaa.txt C:\NET\aaa.txt" + chr(34)) WshShell.SendKeys("{Enter}") WScript.Sleep(500) WshShell.AppActivate "C:\WINDOWS\system32\runas.exe" WshShell.SendKeys("XXXXX") WshShell.SendKeys("{Enter}") WScript.Sleep(500)

  • 削除が実行されない

    以下のvbsを実行しても rmdir が実行されません どうしたらよいでしょうか Dim objShell Dim wExec Dim strResult Set objShell = CreateObject("WScript.Shell") objShell.CurrentDirectory = "C:\Users\xxx\Desktop\test" objShell.Exec ("cmd /c dir 201406* /b/ad/s >> ログ.txt") Set wExec = objShell.Exec ("cmd /c for /R %d in (201406*) do rmdir /S /Q ""%d""") Set wExec = Nothing Set objShell = Nothing