• ベストアンサー

このバッチは間違いないでしょうか?

システムの運用をしていますが、タスクでバッチを定期的に起動して、ツールを自動運用するようにしたいのですが、以下のようなバッチを作りました。 =========================== D: CD D:\aaa\bbb\ccc dataBackup.wsf cscript ”data 退避.vbs” =========================== このバッチについて質問ですが、 ・「cscript」というのは、どこかのサイトに書いてあってのを参照してコピーして書いてみたら動いたので書かないといけないのだなぁ という位の認識なのですが、vbsファイルを起動するときは、「cscript」と記述する必要がある、というのは間違いないでしょうか? ・テストしたサーバではたまたま動きましたが、cscriptは、何かアプリやコンポーネントが入っていないと動かないのでしょうか?つまり、買ったばかりのパソコンで、cscript ”data 退避.vbs”で動かすためには何かアプリ等を入れる必要があるのでしょうか? ・「cscript ”data 退避.vbs”」が「cscript data 退避.vbs」だと、 ファイル名にスペースが入っていてうまく動かなかったため、 cscript data 退避.vbs を””等で起動するファイルを指定して cscript ”data 退避.vbs” としたのですが、問題ないでしょうか? 調べればすむ話なのですが、急いでいるため質問することにしました。初心者的な質問恐縮ですが、よろしくお願いいたします。

  • deayu
  • お礼率52% (127/244)

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

>「cscript」と記述する必要がある、というのは間違いないでしょうか? cscript.exe は、VBScript をコンソールで動かすためのものです。 (逆にwscript.exe は、ウィンドウで動かすためのものです。拡張子が.vbs のファイルをダブルクリックするとこちらが既定になっていてウィンドウで動作します) WScript.Echo とした場合に、cscript で起動している場合には、メッセージがコンソール出力されます。 cscript XXX.vbs で cscript を省略すると XXX.vbs は、 wscript.exe XXX.vbs で起動されます。 そういう意味では、(動作に問題なければ)省略しても構いません。 >cscriptは、何かアプリやコンポーネントが入っていないと動かないのでしょうか? IEがインストールされていれば、VBScript は、付随的にインストールされます。なので、よほど古いPCでなければ、既にインストールされている(特に別にインストールする必要はない)と思います。 ただ、いくつかバージョンの違いがあるので、最新バージョン版が入っていない場合があるかもしれません。 >cscript ”data 退避.vbs” >としたのですが、問題ないでしょうか? 問題ありません。 普通そのようにします。

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4847/10260)
回答No.3

・cscript記述の必要性 #1の方が書かれている通り、"data 退避.vbs"とだけ書くと、wscript "data 退避.vbs" と書いたのと同じことになり、多少使える機能や動作が違います。わざわざ書いてあったということは、cscriptの機能が必要だと思われます。つまり、おそらく必要。 ・インストールの必要性 Windows95,Windows98なら何らかのインストールが必要です。それ以降のWindowsなら標準搭載。 ・空白を含んだファイル名 空白を含んだファイル名を " " で囲む必要があるのはWindowsの標準仕様です。囲まなくていいのは例外的なケースだけです。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

蛇足となりますが、普通は「誤動作をおこすような 名前を不用意に使用しない」というのが原則です。 Windowsであれば英数半角のみの8.3形式で名前を つけることをお勧めします。

関連するQ&A

  • batからvbs起動

    バッチファイルからVBSファイルを起動したいと思いsample.batに以下の記述をしました。 「cscript //NoLogo "test1.vbs"」 するとプロンプト上に上記メッセージが繰り返し(無限ループ?)表示されてしまいます。 バッチからVBSファイルを起動するには何かコマンドが必要なのでしょうか?

  • バッチファイル

    VBScriptについての質問です。 先日、バッチファイルとVBSを使ってプリンター削除をするという課題が出されました。 自分は、バッチファイルでrundll32 printui.dll,PrintUIEntryを使ってプリンター削除の定義をしましたが、VBSファイルの方で何を書けば良いか分からなくなってしまいました。 恐らくVBSファイル内で、バッチファイルを起動させるための処理を書かなくてはいけないと思うのですが、どのような書き方をすれば良いのか分かりません。 一例ということでも良いので教えていただければ幸いです。 長々とすみません。

  • バッチファイル 時間指定

    バッチファイルをスタートアップに入れています。 手軽で便利なのですが、起動するたびに出てしまうので、if文か何かを使って、前回の実行してから12時間経っていない場合はバッチファイルを終了させるようにできないでしょうか。 robocopyを使ったバッチで、オプションでログを作成するようにしています。そのテキストファイルの作成時間で12時間経っているかどうか判断できればと思っています。 と質問したところ、以下の回答を得ました。 check.vbs ------------------------- Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFile("logfile.txt") WScript.Quit(DateDiff("h",f.DateCreated,Now)>12) ------------------------- バッチでは、先頭で、 cscript check.vbs || exit これを追加したのですが、12時間経っていなくても実行されます。 なぜなのでしょうか。

  • バッチファイルの文字列をVBSに渡すには

    バッチファイルからVBSを実行しています。 echo msgbox "123" >> %TEMP%\abc.vbs cscript //NoLogo %TEMP%\abc.vbs >%TEMP%\abc.cmd del %TEMP%\abc.vbs call %TEMP%\abc.cmd del %TEMP%\abc.cmd このバッチを実行すると 123 が表示されます。 "123" の部分を変数として引渡したいのです。 set a=123 echo msgbox &a& >> %TEMP%\abc.vbs このようにして実行すると ’コマンドの構文が誤っています。’ となります。 よろしくお願いします。

  • VBSでバッチパラメーターと同等のものは

    コマンドプロンプトの「%1」はバッチファイル実行時に付加された最初のパラメータを表します。 VBSでも同じような働きをさせたいのですが書き方がわかりません。 どうすればよいでしょうか。 なお、VBSの実行方法はあるVBSファイルに処理したいファイルをD&Dする事になります。

  • バッチファイル(.bat)へWSH(.wsf)のエラーコードの返し方について

    はじめまして、kiwi88と申します。 バッチファイル(.bat)からwshスクリプト(.wsf)を呼び出すプログラムを作成しました。 そこで、wshスクリプトで実行されたエラーコードを呼び出しもとのバッチファイル(.bat)に返すことはできますでしょうか。 以下はバッチファイル(.bat)からwshスクリプト(.wsf)を呼び出す箇所のソースです。 ◆バッチファイル(test.bat)◆ ---------------------------------------- ~※処理内容省略~ cscript test.wsf //nologo //Job:wshscript > batch.log IF %ERRORLEVEL% NEQ 0 GOTO ERR exit :ERR set ret=%ERRORLEVEL% echo ****** [%:ERRORLEVEL=%ret%] ****** > err.txt exit %ret% ---------------------------------------- 以下はwshスクリプト(.wsf)のエラーコードを返す箇所のソースです。 ◆wshスクリプト(test.wsf)◆ ---------------------------------------- <job id = "wshscript"> <script language = "VBScript"> <![CDATA[ Option Explicit Function Main() ~※処理内容省略~ err = Err.Number Main = err End Function ]]> </script> </job> ---------------------------------------- 長くなってしまい、申し訳ありませんが、 ご教授願えますでしょうか。 宜しくお願いいたします。

  • バッチファイル

    お世話になります。 バッチファイルを用いて、実行されるプログラムがあります。 私の作成したものではないので、どのようなやり取りが内部で行われているのかは、詳細はわかりません。 例えば、D:\Programフォルダーの中にプルグラムをインストールしたとすれば、引数を2つ指定して(例:aaaとbbb)、バッチファイル(test.bat)を以下のように実行すれば、プログラムは正常に作動します。 D:\Program>test aaa bbb しかし、以下の場合には、正常に作動しません。 C:\>D:\Program>test aaa bbb つまり、パスを含めて、バッチファイルを実行することは、このプログラムは許可してくれません。 ここで、例えば、VBなどを用いて、テキストボックスなどで引数を二つ指定して、実行ボタンをクリックすれば、必ず、D:\Program>test aaa bbbという状態で、バッチファイルが実行されるようにするには、どのようにすればよろしいでしょうか? もしご存知の方がいらっしゃいましたら、是非、ご教授願います。 以上、宜しくお願いいたします。

  • タスクスケジューラからのバッチ起動

    タスクスケジューラからのバッチ起動で動作せず困っております [環境] ・windows server 2008 システムディスク:C ・共有ディスクをLANにて接続 ネットワークドライブとしてD:に設定 [動作概要] ・バッチ(*.vbs,*.bat)、データ、ログをD:に配置 ・タスクスケジューラに*.vbsを登録 ・*.vbsからD:にある*.batを起動(WScript.Run) [事象] ・*.vbsをGUIよりダブルクリック/エンターキーでは問題なく起動 ・*.vbsをタスクスケジューラから起動するととまってしまう ・*.vbs内の*.batコール箇所をコメントして実行で動作は最後まで終了 ・*.bat単体で動作させても問題なく終了 ・*.batをタスクスケジューラで起動するととまってしまう *.bat内で(>D:)などのディレクトリ移動コマンドを入れてもとまってしまう [原因推測] ・タスクスケジューラからネットワークドライブが認識できない? ・*.vbsで実施するWScript.Runの実行者がsystemで、 ネットワークドライブの認識用の環境情報(unixでいうcshrcみたいなもの)を 読み込まないで動作する? [問] ・上記構成では動作ができないのでしょうか? ・実現可能な方法があればヒントでもほしい 大変複雑な内容になって申し訳ありませんが 何か察することがあればコメントください

  • バッチファイルでテキストの編集は可能ですか?

    こんにちは。 超初心者な質問で申し訳ないのですが、宜しくお願いいたします。 以下の様に、2つのTextファイル(A.txt、B.txt)のデータを合体させて、 新規Textファイル(C.txt)を作りたいのです。  A.txt  ------------  あいうえお  かきくけこ  さしすせそ  ------------    +  B.txt  ------------  abcdefg  1234567890  ------------    ↓  C.txt  ------------  あいうえお  かきくけこ  さしすせそ  abcdefg  1234567890  ------------ VBSファイルを作って、バッチファイルから起動させようと思ったのですが、 VBSファイルを作ったことが無いので何から手をつけて良いのやらあたふたしています。 バッチファイルでの編集の仕方をご存知の方、もしくは VBSファイル作成のヒント(参考になるサイトやコードなど)を 教えていただける方がいらっしゃいましたら、宜しくお願いいたします。 #ちなみに、社内規定でWeb上に落ちてる様なフリーソフトを使うことは出来ません。

  • VBScript(WScript)のバッチファイル実行

    お世話になります。 VBScriptで困っています。 ご存知の方、ご教示願えますでしょうか。 Windowsでバッチファイルを実行したときに、DOS画面(コマンドプロンプト)が一瞬パッて表示されるかと思います。 現在開発中のシステムで、プログラムからバッチファイルを自動で実行する処理を入れております。 通常ならばバッチファイルを実行した場合、DOS画面が表示されてしまいますが DOS画面を出さないようにプログラムを組んでいます。 つまり、VBScriptからバッチファイルを実行しております。 以下、VBScriptのソースを記載します。 Set objShell = WScript.CreateObject("WScript.Shell") fcresult = objShell.Run("C:\abc.bat", 0, True) wscript.quit fcresult 上記のVBSを実行すると、必然的に「abc.bat」が実行されます。 しかし、現在僕が使っている環境ですとDOS画面が表示されません(←これがやりたいこと) しかし、お客さんの環境で同じ様にVBSからバッチファイルを実行すると 「C:\WINDOWS\System32\CScript.exe」という名前でDOS画面が起動されてしまいます。 周りの環境でもVBSからバッチをたたくような処理を行ってみましたが、DOS画面が起動されず。。。 正直、再現が難しいため大変困っております。 お客さんの環境では100%再現されます。 全くもって原因がつかめておりません。 Windowsのセキュリティの設定でしょうか!? ご存知の方いらっしゃいましたら、知恵をお貸しください。 よろしくお願いいたします。