• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBSでのファイル読込、出力操作について)

VBSでのファイル読込、出力操作について

このQ&Aのポイント
  • VBSを使用してファイルの読み込みと出力操作を行いたいです。具体的には、『start.vbs』を実行すると、テキストファイルに記載されている実行ファイル名を読み込んで、別のファイルに書き込みたいです。
  • 現在、VBSを使用してファイルの読み込みと出力操作を試していますが、『start.vbs』を実行すると、テキストファイルの内容をVBSファイルに書き込むことができません。早急に解決方法を知りたいです。
  • VBSを使って、テキストファイルに記載されているファイル名をVBSファイルに書き込む方法を教えてください。『start.vbs』を実行すると、a.txtに記載されている実行ファイル名を読み込んで、test.vbsにファイル名分のコマンドを書き込みたいです。

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

  • ベストアンサー
回答No.3

No2だが、書き忘れたことが、 http://msdn.microsoft.com/ja-jp/library/cc392209.aspx ユーザーガイドの章だが、さらっとよむと30分もあれば、さらっと読める程度の物。いわば概略と呼べる物で、小説で言えばプロローグ程度の物で、ここに本文のキーが凝縮されている物だ。本の読み方の講習だね。 まず、だまされたと思って、ここを最後まで読んでみよう。作成のヒントが凝縮されて書きこまている。200ページ程度のサル本が凝縮されて記載されている。 このようなサイトをサーフィンしてゆくと、本の読み方とか、より良い自分にあった、探していた本を、どのように探し、みいだすのか自分で気がつくものだ。知りたいところをまずみる。そこに自分が知りたい事がどのように記載されているか、抜き出す。それに、どれだけ短時間に出会えたか? それが、あなたにとって最も重要な事。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

>、本件少し早めに作りたいという背 それは、言い訳にならない。早く作りたいのは、誰でも同じ。有能な人間なら、”サル本” ”あんちょこ”なんて呼ばれる本を見て作ってしまう事を思いつく。じゃネットにないのか? ”あるよ” http://msdn.microsoft.com/ja-jp/library/cc392489.aspx http://msdn.microsoft.com/ja-jp/library/cc392193.aspx http://msdn.microsoft.com/ja-jp/library/cc409798.aspx などのリファレンスサイトです。サンプルとリファレンスを見比べれば、だいたい1時間もあれば、改造ができるはず。あなたは、どれくらいで完成できるでしょうね。 上記は、本家、マイクロソフトのサイト。急がば回れ の慣用句はこの時のためにあるんだがな~

全文を見る
すると、全ての回答が全文表示されます。
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

コピー&ペーストするきでも、それぞれが何をやっているか、考えながらやるようにしましょう。 やりたいことは 読み込む→加工→書き込み なのですから、どこで 読み込んで書き込んでいるかを考え、その間で加工するようにすればよいのです。 objVBSFile.WriteLine(objFile.ReadLine) は objFile.ReadLine した文字列を objVBSFile.WriteLine で書き出しています。 ということは s=objFile.ReadLine 等と変数に読み込んで、それを t= s & "X" ..... 等と加工したものを objVBSFile.WriteLine(t) と出力すればいいです

way0usechu
質問者

お礼

御礼が遅くなりました。 教えて頂いた通りの考え方で作成することができました。 ご親切にありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBS

    VBSであるファイルを1行ずつ読み込み、その読み込んだ値を ある別のファイルにリダイレクトしたいのですが、 どのように書けばよいか教えてください。 下記のように、echoでは出すことができるのですが、 ファイルにリダイレクトというのができません。 よろしくお願いします。 ==== sample shell ========================= Option Explicit On Error Resume Next Dim objFSO ' FileSystemObject Dim objFile ' ファイル読み込み用 Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") If Err.Number = 0 Then Set objFile = objFSO.OpenTextFile("d:\dr1.txt") If Err.Number = 0 Then Do While objFile.AtEndOfStream <> True WScript.Echo objFile.ReadLine Loop objFile.Close Else WScript.Echo "ファイルオープンエラー: " & Err.Description End If Else WScript.Echo "エラー: " & Err.Description End If Set objFile = Nothing Set objFSO = Nothing ============================================================

  • ファイルの作成日時について

    職場で簡単なファイルのバックアップPGをWSHで作っていますが ファイルの作成日時が思うように入ってくれません。 WSHの流れは下記にしたいと考えています。 (1)前回分のファイルを作成日時を末尾に付けてリネーム (2)WSHからバッチを呼び出して、ファイル作成 (2)でファイルが作成はされるのですが、(1)の処理でリネームした ファイルの作成日時(実行時間より古い時間)が入って作成されてしまい、(2)が実行された 日付が入ってくれません。 ちなみに、更新日時アクセス日時は(2)の実行時間が入ります。 環境は以下になります。 OS:Windows7Pro SP1 →この先WindowsSV 2008R2で実行させたいと考えています。 Windowの仕様なのか、どうなのか、わからないのですが どなたか何か回避策をご存じの方がみえれば、ご教授をお願いいたします。 テストで作成したWSHとBatのソースを下記に貼り付けます。 WSH *************************************** option explicit '変数定義 Dim objFso Dim objFile Dim objWShell 'オブジェクトの生成 Set objFso = Wscript.CreateObject("Scripting.FileSystemObject") Set objFile = objFso.GetFile("C:\testDir\File-A.txt") 'ファイル名変更 objFso.GetFile("C:\testDir\File-A.txt").Name = "File-B.txt" 'オブジェクト解放 Set objFile = Nothing 'bat実行 Set objWShell = CreateObject("WScript.Shell") objWShell.Run "C:\testDir\echo.bat", 0, True 'batで作成したFile-Aのオブジェクト生成 Set objFile = objFso.GetFile("C:\testDir\File-A.txt") 'オブジェクト解放 Set objWShell = Nothing Set objFile = Nothing Set objFso = Nothing WSH *************************************** Bat **************************************** echo AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA > C:\testDir\File-A.txt Bat **************************************** 以上、よろしくお願いします。  

  • VBSでファイル作成後、書き込みできない

    ファイルが存在している場合は、ファイルをオープンして書き込み、ファイルが存在していない場合は、ファイルを作成後、オープンして書き込みを行わせたいと考えています。 しかし、ファイルが存在していないとき、ファイルは作成されるのですが、『エラー:800A0046 書き込みできません。VBScript実行時エラー』が出て、書き込みができません。モードをWritingにしても同じでした。 お手数をおかけしますが、ご教示いただけますようお願いいたします。 Option Explicit '■ オブジェクトの宣言 Dim objFSO Dim objFile '■ 定数の宣言 Const strFileName = "C:\VBS\TEST.TXT" '■ 定数の宣言 '// ファイル入出力モード(8:追加書き込み) Const ForAppending = 8 Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FileExists(strFileName) Then WScript.Echo "ファイルが見つかりました" Else WScript.Echo "ファイルが見つかりませんでした" Set objFile = objFSO.CreateTextFile(strFileName) If IsObject(objFile) Then WScript.Echo "ファイルを作成しました" Else WScript.Echo "ファイルを作成できませんでした" WScript.Quit(1) End If End If '// ファイルのオープン Set objFile = objFSO.OpenTextFile(strFileName,ForAppending) objFile.WriteLine "2012/12/21,100,ブレーキパッド,35000"

  • vbscriptを用いて他のVBSファイルを実行

    プログラム ---------------------------------------------------------------- option explicit dim objwshell set objwshell = createobject("wscript.shell") objwshell.run "ファイルのフルパス", 1, false set objwshell = nothing --------------------------------------------------------------- その「ファイルのフルパス」上に「notepad.exe」と入力するとメモ帳が起動するんですけど、他のファイル(vbs、jsなど)を指定するとエラーが出ます。 もしかしてこれは拡張子が「.exe」のファイルだけしか起動できないのでしょうか? ちなみに上のファイルを保存するときの拡張子は「.vbs」です。

  • display.vbsというファイルがstartupフォルダにあるので

    display.vbsというファイルがstartupフォルダにあるのですが? display.vbsというファイルがすべてのプログラムのstartupフォルダにあるのですが、これは何でしょうか?名前からして気持ち悪いので正体を知っている人がいたら教えて欲しいです。 メモ帳で開いたら下記のようなソースになっていました。 よろしくお願いします。 -------------------------------------------- ' Self destructive VBScript for changing optimal resolution ' Set optimal resolution Set objShell = Wscript.CreateObject("Wscript.Shell") objShell.Run "c:\windows\options\cfgdisp.exe /optimum", 7, True ' Now destroy itself Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.DeleteFile("C:\Documents and Settings\All Users\Start Menu\Programs\Startup\display.vbs") --------------------------------------------

  • VBscriptで「改行」と「"」を置換させる

    VBスクリプトを使ってファイルを置換したいと考えています。 以下のVBSファイルとコマンドを使って、置換することはできました。 が、置換対象が「改行」と「"」の場合、エラーとなって置換できません。 どうすればいいのでしょうか。 よろしくおねがいします。 ********コマンド******** (1)cscript replace.vbs "C:\test.txt" "Jim" "Jane" (2)cscript replace.vbs "C:\test.txt" ""_\n" "a_test" ********VBSファイル(replace.vbs)******** Const ForReading = 1 Const ForWriting = 2 strFileName = Wscript.Arguments(0) strOldText = Wscript.Arguments(1) strNewText = Wscript.Arguments(2) Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile(strFileName, ForReading) strText = objFile.ReadAll objFile.Close strNewText = Replace(strText, strOldText, strNewText) Set objFile = objFSO.OpenTextFile(strFileName, ForWriting) objFile.WriteLine strNewText objFile.Close (1)のコマンドを実行すると、 「Jim」は「Jane」に置換されますが、 (2)のコマンドを実行すると、エラーになり置換されません。 エラーメッセージ: 「Microsoft VBScript 実行時エラー: インデックスが有効範囲にありません。」 よろしくおねがいします。

  • VBS ファイルマージ処理

    特定のDir内、複数ファイルのレコードを全てマージする為、 以下の処理を考えておりますが実現に至っておりません。 Fileがなくなるまで、ループ処理をさせる為、File名 の(1)から(2)へFile名の受け渡し方法が解かりません。 何方か有識者の方、ご教授頂けませんでしょうか もっと賢くマージが出来るので有りますならば、その方法 を教えて頂けませんでしょうか ※Dir内にFileはユニークなFile名にて、複数個作られます。 ※マージに必要なFileだけがDirには作られます。 ※マージするFileの順番は問いません。 (1)C:\temp\temp Dir内のFile名を取得 Set objFso = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder("C:\temp\temp") objFile = objFso.GetAbsolutepathname("temp_ini.txt") Set objOut = objFso.OpenTextFile(objFile, 2, False) For Each objFile In objFolder.Files objFilemei = objFile.Name objOut.Writeline objFilemei next ※File名の受け渡しがわからず、一旦Fileに書き出してます (2)Fileが無くなるまで、File内のレコードを全て読込み、マージファイルを作成(予定) objFile1 = objFso.GetAbsolutepathname("temp_temp.txt") Set objin = objFso.OpenTextFile("temp_ini.txt",1) Do Until objin.atendofstream = True linedata = objin.readline() loop 説明が悪くてすみませんが、よろしくお願い致します。

  • VBSについて

    VBSの中でDOSのコマンドを実行したいのですが、VBS内で使用した変数を Runで使うことはできないのでしょうか? ################################################ Set WSHShell = CreateObject("WScript.Shell") x = "C:\Documents and Settings\user" WSHShell.Run "cmd.exe /K dir x" ################################################ たとえば上記のようなプログラムを作ったときに最終行のcmd.exeの 実行で変数xを使用したいのですが、可能でしょうか? このまま実行するとコマンドプロンプトの窓が開いて「ファイルが見つかりません」と表示されてしまいます。 何か方法があればご教授ください。よろしくお願いします。

  • 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の環境です。 どこか記述に誤りでもあるのでしょうか? どうぞよろしくお願いいたします。

  • VBSの処理について

    下のプログラムはどんな処理をしているのか教えていただけないでしょうか? 全プログラムではなく一部抜粋です。 特に(1)「""^\*\*\*\*\*$""」の部分と(2)「f1.WriteLine( "cscript //nologo test.vbs sab.txt")」、(3)「rsh.Run "cmd /c """ & pth& "batta.bat""",1,false」を知りたいです。 f1.WriteLine( "findstr /V ""^\*\*\*\*\*$"" sabun.txt | findstr ""^[0*]"" >> sab.txt") f1.WriteLine( "cscript //nologo test.vbs sab.txt") f1.close Set rsh = Wscript.CreateObject("Wscript.Shell") rsh.Run "cmd /c """ & pth & "batta.bat""",1,false

このQ&Aのポイント
  • FAXをダイアルしようとした時に”ローラーの清掃をして下さい”と表示されたが、取説になく処理の仕方が不明です
  • お使いの環境はWindowsで、接続は有線LANです。関連するソフト・アプリはありません。電話回線の種類はアナログ回線です。
  • MFC-J737DNでFAXをダイアルしようとした際に表示されるエラーメッセージ
回答を見る