• ベストアンサー

vbsの保存方法が分からない

Wscript.StdOut.Write "Height(m) = " H = WScript.StdIn.ReadLine Wscript.StdOut.Write "Weight(kg) = " W = WScript.StdIn.ReadLine BMI = W / (H * H) Wscript.StdOut.Write "BMI = " & BMI & vbLf BMIの上記コードをコマンドプロンプトで書き込み practice に保存しようとすると なぜか bmi とだけ表記されて本のような bmi.vbs にならない。 従い、これを cscript.bmi.vbs で実行しようとエンターすると スクリプト C: ¥practice¥bmi.vbs 行:1 文字:1 コード:80070006 ソース:(null) となり、実行できない。 practice に保存するとき、 ファイル名 の蘭に *.txt を消して bmi.vbs と記入している。これが間違いですか?

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10261)
回答No.1

「コマンドプロンプトで書き込み」とは、具体的にどういう方法でやっていますか? 他人が同じ事を出来るレベルに具体的に書いてください。

pinegrow426
質問者

補足

本に書いてあるように アクセサリーからコマンドプロンプトを選び、 md¥practice cd¥practice notepad でコード記入 その保存のときにローカルディスクCのpractice に 上記のコードを保存する。 その手順は間違ってないと思うが、 保存の仕方が間違ってるのか bmi.vbs にならず bmi の表記になる どうしてですかね?

関連するQ&A

  • CScript vbsファイル実行 途中で止めたい

    Cscript でVBSファイルを実行するとコマンドプロンプトの画面が立ち上がって処理がはじまりますが、 実行中にEnterキーをおさないと次の処理にいかないように、プログラムを書きたいのですが、 書き方わかる方いらっしゃいましたら、教えてください。Enterキーでなくても構いません。 例えばaaa.vbsの中で、大きく二つ処理があって、(1)の処理→(2)の処理の順番だった時に (1)の処理→(コマンドプロンプト上で)止める、自分でなにかボタン押す→(2)の処理みたいな感じにしたいと思っています。 自分が試したのが、以下です、駄目でした。 WScript.StdInを使ったのですが、これを一度使った後に、Wscript.Echoを使うと、 次のWScript.StdInが使えなくて意味がありませんでした。 WScript.StdIn(入力表示されてとまった) → Wscript.Echo "テスト" →WScript.StdIn(入力表示なく、とまらない)

  • ファイル内の文字列を置換するcscriptについて

    お世話になります。 早速ですが、 以前、以下のような、「UNIXファイルの文字列を置換する」プログラムを Cscript で記述する方法を教えていただいたものですが、 cscript //nologo foo.vbs < t22.org > t22.txt ====foo.vbs==================================================== Do While Not WScript.StdIn.AtEndOfStream str = WScript.StdIn.ReadLine WScript.StdOut.Write replace(str,"abc","xxx") & vbLF Loop 今回、これをさらに、 Cscript で「置換するファイル」と「置換する文字列」も指定するプログラム にしたいと思い記述してみたのですが、下記のような問題が発生します。 「置換後のファイルの最後に改行文字が入ってしまいます。」原因がわかりません。 cscript //nologo f00.vbs t22.txt aaa xxx ====foo.vbs==================================================== Dim myFile Dim myRec Dim fso Dim txt, wd1, wd2 txt = WScript.Arguments(0) wd1 = WScript.Arguments(1) wd2 = WScript.Arguments(2) WScript.Echo txt WScript.Echo wd1 WScript.Echo wd2 Set fso = CreateObject("Scripting.FileSystemObject") Set myFile = fso.OpenTextFile(txt) myRec = myFile.ReadAll myRec = replace(myRec,wd1,wd2) myFile.Close Set myFile = fso.CreateTextFile(txt) myFile.WriteLine (myRec) myFile.Close =============================== このコードのどこに問題があるのでしょうか? 読み込んでいるファイルは、Shift-JIS LF改行のファイルです。 あるいは、 もっと簡単な記述方法等ありましたら、ご意見、ご指導ください。

  • Stdinの使い方

    環境はWindowsXP SP2です。 標準入力から一行の入力を待つプログラムAが有ります。 それをWSHスクリプトBから入力させてやりたいです。 仮に、そのAを <A.vbs> s = WScript.Stdin.Readline WScript.Echo "#" & s とします。問題なく動作します。 そしてはBは <B.js> var WshShell = WScript.CreateObject("WScript.Shell"); var oExec = WshShell.Exec("cscript a.vbs"); oExec.StrIn.Write("abcdef"); としました。しかし Microsoft JScript runtime error: 'oExec.StrIn' is null or not an object なるエラーで失敗します。 どうしてでしょうか。

  • VBSについて教えてください。

    VBSを勉強したくて http://www.whitire.com/vbs/tips0001.html のサンプルコードを見たのですが Option Explicit WScript.Echo "Hello VBScript World" はどこに張り付ければいいのでしょうか? エクセルVBAの標準モジュールに Sub test() WScript.Echo "Hello VBScript World" End Sub として実行してみましたが WScriptの部分がコンパイルエラーになってしまいました。

  • VBScript

    C言語の勉強の前にまず、Windows Command Prompt をやって 慣れたほうがよいと本にあり、初歩の初歩 BMI計算式を 記入しpractice に保存したが、本にあるようなbmi.vbsの表示にならず、 bmi とだけ示される。 従い、これを実行しようとすると スクリプト C:¥practice¥bmi.vbs 行:1 文字:1 エラー:ハンドルが無効です コード:80070006 ソース:(null) 因みにWindows 7 HP を使用してます。 プログラムのド素人ですので、勘違いもあるかと 思いますが、宜しくお願いいたします。

  • VBSにて改行コードの検出・置換

    VBSに馴染みがなく何方か教えて頂ければ… ------------------------ 11111AAA[0D0A]AAA[0A] 22222CCCCCC[0A] 上記データ、[0D0A]の改行コードを捜しだし、""に置換 111111AAAAAA 左記レコードの様にしたい。 -------------------------- Do Until objin.AtEndOfStream strLine = objin.Readline If InStr(strLine,VbCrLf) <> 0 Then strLineA = Replace(strLine,vbCrLf,"") objout.Write(strLineA) Else objout.Write(strLineA & VbLf) End If Loop ※InStr関数で改行コードが見つからない。 (objin.Readlineで改行まで読み込んでない)  Replace関数のみ行うと置換されるが[0A]まで ""となってしまう。  [0D0A]のみ検知し置換したいのですが。 何方か良い方法を知っている方、よろしく御願い致します。

  • VBSについて

    VBSについて質問です。プログラミング初心者です。 既定フォルダ内のファイルを選択したフォルダ内にコピーするプログラムを組みたく、 色々調べながら作成してみましたが、うまくいきません。 症状として、選択したフォルダではなく、 プログラムを保存しているフォルダにコピーされてしまします。 選択したフォルダに保存するためには、どのようにすればいいでしょうか? また、下記コードがうまくいかない理由も解説もしてくださると大変助かります。 C:\strFrom ←既定のコピー元フォルダ C:\strTo  ←プログラム実行時に選択するコピー先フォルダ C:\VBS   ←プログラムを保存しているフォルダ ※ここにフォルダ名「strTo」で「strFrom」内のファイルが保存される Set objFS = CreateObject("Scripting.FileSystemObject") 'ファイルシステムオブジェクト作成 strFrom = "C:\strFrom" 'コピーするフォルダのパス Set shla = WScript.CreateObject("Shell.Application") 'Shellの呼び出し Set strTo = shla.BrowseForFolder(0, "フォルダを選択して下さい", &H1) 'パス取得 WScript.echo strTo.Items.Item.Path '取得パス確認 objFS.CopyFolder strFrom, strTo 'ファイルコピー

  • EVENTQUERY.VBSでエラー

    現在あるPC(WinXP)から他のPC(WinXP)のイベントビュアのログを テキストファイルなどに保存したいと思っています。 調べたところEVENTQUERY.VBSでそれが出来ることが分かりました、 こんな感じです >cscript eventquery.vbs /R 1000 /L System しかし、Win2000などのPCへはそのコマンドが実行できて正しくロ グが落ちるのですが、相手がWinXPだと エラー: システム名,資格情報および WBEM Coreを確認して下さい >cscript eventquery.vbs /S EtcPC /U EtcUid /P EtcPass /R 1000 /L System というメッセージが表示されコマンドを実行することが出来ません。 ユーザーIDやパスワードはもちろん他のPCにて存在し、現在ログイ ンされているIDを使用しています。 どなたか解決法がありましたらよろしくお願いします。

  • vbsで起動したexeを終了させる方法

    ts動画ファイルをps動画ファイルに変換するvbsファイルをネット上から見つけることが出来ました。 これをコマンドラインから TN:"C:\TSをPSに変換.vbs" -EIT -ECM -EMM -SD -1SEG "%1" TN:cd:Z\ …と、1行目でファイルにこのvbsで適用して、その後いくつかの処理を行うようにしています。 しかし、実際には1行目が完全に終了したとみなされず 2行目以降に移ってくれません。 そこで、このvbsによって起動される"vlc.exe"を手動で終了して 初めて、2行目以降を実行してくれます。 ソースはこちらです↓ vlcpath = "C:\Program Files\VideoLAN\VLC\vlc.exe" Set objArgs = WScript.Arguments Set objSHell = WScript.CreateObject("WScript.Shell") For i = 0 To objArgs.Count - 1 if ( Right(objArgs(i),3) = ".ts" ) Then SrcFile = Chr(34) & objArgs(i) & Chr(34) DstFile = Chr(34) & Left(objArgs(i),Len(objArgs(i))-3) & ".mpg" & Chr(34) CmdLine = Chr(34) & vlcpath & Chr(34) & " " & SrcFile & " :sout=#transcode {acodec=mpga,ab=384,channels=2}:duplicate{dst=std{access=file,mux=ps,dst=" & DstFile & "}}vlc:quit" 'Wscript.StdOut.WriteLine CmdLine objSHell.Run CmdLine ,1 ,True End If Next 自分なりに http://www.whitire.com/vbs/tips0107.html こちらを参照して CmdLine.Terminateや Set objExecCmd = objSHell.Exec(CmdLine) などで試してみたのですがダメでした… ほんのちょっとしたアドバイスや参考URLで構いませんので アドバイスをよろしくお願いします。

  • vbsからのWordマクロ実行

    やりたいこと  vbsからWordマクロを実行し復帰値をMsgBoxで表示する。 問題点  Test関数を実行し復帰値を取得したいのですがコンパイルエラーとなってしまいます。   正しい書き方を教えてください。 Set oApp = CreateObject("Word.Application") oApp.Documents.Open WScript.Arguments(0) Dim code code = oApp.Run Test ★ MsgBox code

専門家に質問してみよう