
VbscriptにてTeraterm のマクロを実行したいのですが、「CreateObject」を複数使っている為か
「objWshShell.Run」でRunメソッドエラーがでます。
やりたいことは、ReadLineにて読み込んだ、「c:\list.txt」を 「objWshShell.Run」でtpmacro.exe 第一引数にして実行したいです。
Dim objfs,objWshShell
Dim file
Dim strLine
Set objfs = CreateObject("Scripting.FileSystemObject")
Set file = objfs.OpenTextFile("C:\list.txt", 1)
Set objWshShell = WScript.CreateObject("WScript.Shell")
Do until file.AtEndOfStream
strLine = file.ReadLine
objWshShell.Run="""C:\Program Files (x86)\teraterm\ttpmacro.exe strLine"""
Set objWshShell = Nothing
Loop
file.Close
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
【不具合1】
>「objWshShell.Run」でRunメソッドエラーがでます。
Runメソッドの使い方が間違っています。
以下を参考にしてください。
https://msdn.microsoft.com/ja-jp/library/cc36442 …
【不具合2】
ttpmacro.exeへの引数の渡し方が間違っている。
"C:\Program Files (x86)\teraterm\ttpmacro.exe" 引数
【不具合3】
ループの中で、
Set objWshShell = Nothing
としている為、二回目以降の「objWshShell」が存在しない。
こんな感じで
Dim objfs,objWshShell
Dim file
Dim strLine
Set objfs = CreateObject("Scripting.FileSystemObject")
Set file = objfs.OpenTextFile("C:\list.txt", 1)
Set objWshShell = WScript.CreateObject("WScript.Shell")
Do until file.AtEndOfStream
strLine = file.ReadLine
objWshShell.Run """C:\Program Files (x86)\teraterm\ttpmacro.exe"" " & strLine
Loop
Set objWshShell = Nothing
file.Close
No.2
- 回答日時:
objWshShell.Runするならイコールじゃなくて引数でわたすのでは?
また、strLineをクォーテーションのなかに入れても展開されないので
外側で連結しないといけないかも
objWshShell.Run("""C:\Program Files (x86)\teraterm\ttpmacro.exe”” ”+strLine)
またstrLineで読まれるのはttlファイルですか?
ttlファイル自体フルパスでかいて、クォーテーションでくくる必要があるかも
objWshShell.Run("""C:\Program Files (x86)\teraterm\ttpmacro.exe”” ""”+strLine+"""")
No.1
- 回答日時:
VB Script触ったコトはありませんが……
>「objWshShell.Run」でRunメソッドエラーがでます。
具体的にどんなエラーです?
>objWshShell.Run="""C:\Program Files (x86)\teraterm\ttpmacro.exe strLine"""
「変数strLineの中身の文字列」ではなく「strLine」という文字列を第1引数に渡していると思いますが、そこら辺は期待値通りなんですか?
それともVB Scriptは文字列中に変数名を記述すると勝手に置き換えしてくれるんでしょうか?
ついでに…上記の指定だと実行しようとしているのは、
"C:\Program Files (x86)\teraterm\ttpmacro.exe strLine"
で、拡張子が「.exe strLine」というファイル。ということになりますが?
ダブルクォーテーションで指定するのはそういう意味ですけどどうですか?
C:\ProgramというプログラムにFiles (x86)\teraterm\ttpmacro.exe strLineという3個の引数を渡しているのか、
C:\Program Filesというプログラムに(x86)\teraterm\ttpmacro.exe strLineという2個の引数を渡しているのか、
C:\Program Files (x86)\teraterm\ttpmacro.exeというプログラムに1個の引数を渡しているのか、
全体をダブルクォーテーションが囲った場合にどうやって判別しましょう?
# 判別する為に「半角スペースを含むフルパス名」をダブルクォーテーションで囲っているのではないですか?
objWshShell.Run="""C:\Program Files (x86)\teraterm\ttpmacro.exe"" " & strLine
または、
objWshShell.Run="""C:\Program Files (x86)\teraterm\ttpmacro.exe"" " + strLine
なんじゃないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access クエリ実行が急に非常に...
-
OLE又はDDEを使うVISUAL BESIC...
-
vbsで起動したexeを終了させる方法
-
jarの開き方を教えてください。
-
コンポーネント`MSCOMM32.cox'...
-
WScript.Echo と msgbox
-
アプリで作成したexeファイルを...
-
c/c++ ビルドしたにもかかわら...
-
VB6で、C言語の(argv,argc)み...
-
VBAでMP3を鳴らしたい
-
ネットワーク越しのEXEファ...
-
JARファイルをEclipseを使って...
-
JAVA .jarファイルに再圧縮する...
-
eclipseで作ったプログラムを他...
-
VBフォームアプリケーションに...
-
matlabのmファイルを自動で実行...
-
アプリケーションとソースコー...
-
VC++から引数付きexeファイルの...
-
JavaScriptでコマンドプ...
-
MATLAB から exe ファイルの実...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access クエリ実行が急に非常に...
-
OLE又はDDEを使うVISUAL BESIC...
-
c/c++ ビルドしたにもかかわら...
-
VBAで他のプログラムが起動して...
-
コマンドプロンプトで外のexeや...
-
VBAでEXEファイルを動かす方法...
-
コンポーネント`MSCOMM32.cox'...
-
JavaScriptでコマンドプ...
-
VC++から引数付きexeファイルの...
-
JAVA .jarファイルに再圧縮する...
-
jarの開き方を教えてください。
-
WScript.Echo と msgbox
-
実行ファイルと実行モジュール...
-
以下のように複数のファイルを...
-
ネットワーク越しのEXEファ...
-
LINK : fatal error LNK1104に...
-
Winでコマンドプロンプトを出さ...
-
JAVAでつくったプログラムはコ...
-
VBAでMP3を鳴らしたい
-
VB6で、C言語の(argv,argc)み...
おすすめ情報