Eドライブにて「e.bat」でCドライブの"C:\Program Files (x86)"\teraterm\ttpmacro.exeを起動するにはどうしたらよいのでしょうか。
Eドライブにて「e.bat」を行うと「E:\list_e.txt」を読み込み"C:\Program Files (x86)"\teraterm\ttpmacro.exeが起動するはずが起動しません。しかし、Cドライブの「c.bat」は起動し動作します。
==========
(e.bat)
=========
set macro="C:\Program Files (x86)"\teraterm\ttpmacro.exe
for /f %%i in (E:\list_e.txt) do %macro% /V /I %%i
-----------
E:\list_e.txt中身
cisco1.ttl
cisco2.ttl
-----------
==========
(c.bat)
==========
set macro="C:\Program Files (x86)"\teraterm
cd %macro%
for /f %%i in (E:\list_c.txt) do ttpmacro.exe /V /I %%i
-----------
E:\list_c.txt中身
cisco1.ttl
cisco2.ttl
-----------
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
ちょっと時間があったので試してみました。
○ https://ttssh2.osdn.jp/manual/ja/macro/commandli …
にあるように、
%macro% /V /I cisco1.ttl
だと、 ttpmacro.exe のあるディレクトリを基準にした相対パスでcisco1.ttl を探します。
つまり
C:\Program Files (x86)\teraterm\
に cisco1.ttl を置く必要があります。
その場所に置いたら、ちゃんと実行されました。
ファイルの置き場所はあってますか?
c.batを実行するときは C:\Program Files (x86)\teraterm\ に
e.batを実行するときは E:\ に
といったように、 cisco1.ttl の置き場所を変えたりはしていませんね?
○ あるいは、 E:\list_e.txt の中身をフルパスいたら、ちゃんと実行されました
E:\cisco1.ttl
といった具合に。
○実験したのは、 messagebox ( https://ttssh2.osdn.jp/manual/ja/macro/command/m … ) を表示するだけのマクロです。
これでは、c.batとe.batに違いは出ませんでした。(両方とも正常に動作)
○ このことから、「作業ディレクトリを移動」の部分が効いているように思います。
そういう目線でマクロのマニュアルを眺めると、絶対パスでない場合(ファイル名だけ指定等)にどこを基準にするかが、結構バラバラです。
cisco1.ttl,cisco2.ttlの中で、ファイルへのアクセスをしていませんか?
include とか fileopenとかは使ってないですか?
例えば、ファイル名の指定を全部絶対パスにしたらどうなりますか?
No.1
- 回答日時:
動作が違うバッチを実行しているのですから、実行結果が違っても何ら不思議はありません。
e.batは 「**E:\list_e.txt**に書かれた文字列を、**%macro%**の引数にして実行」
c.batは 「**作業ディレクトリを移動してから** **E:\list_c.txt**に書かれた文字列を、**ttpmacro**の引数にして実行」
これだけでも
・作業ディレクトリの違いが原因
・読み込むテキストファイルが原因
・実行コマンドが原因(変数macroの定義、または展開が原因)
・引数の指定方法が原因
が考えられます。
> 起動するはずが起動しません
それは具体的にどんな状況なのですか?
・実行自体されていない
・実行されてエラーになる(具体的なエラーメッセージは?)
では対処方が違います。
例えば、forを使わない
set macro="C:\Program Files (x86)"\teraterm\ttpmacro.exe
%macro% /V /I cisco1.ttl
%macro% /V /I cisco2.ttl
ではどうなのでしょうか?
/V はウィンドウを隠す、/Iはアイコン状態での実行ですから、開発時には両方はずしたらどうでしょう。
少なくとも、ウィンドウが表示されるかどうかで、実行されているかどうかくらいは確認できると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# ExcelCS 1 2023/01/27 19:47
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- 日本株 SBI証券HYPER SBI 2のエラー 1 2023/01/31 13:38
- デスクトップパソコン Dell Inspiron 3250でRealtekのドラーバーでのLine outから出力しない 1 2022/07/10 19:15
- Visual Basic(VBA) モードレスでユーザーフォームが開け(表示)ません。 4 2022/09/09 11:05
- ソフトウェア Aimpに関する質問です。 1 2022/09/08 11:11
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Chrome(クローム) インターネットショートカットをダブルクリックしてもWebページが開けなくなりました 2 2022/04/01 15:28
- その他(プログラミング・Web制作) pythonのmap、結果の利用は1度だけ? 5 2022/06/11 12:33
- Windows 10 Internet Explorer-11 を削除はしたけれど… 3 2022/06/20 17:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの表にヘンな枠が・・・
-
pingは正常なのにtracerouteで...
-
SONYの音楽ソフト「x-アプリ」...
-
CRONを隔週の日曜日に実行させたい
-
windows10のごみ箱をrd /s /q C...
-
windowsからtelnetでログインし...
-
Linux のシェルスクリプトの強...
-
Openイベントを開始させないで...
-
shutdownコマンド実行の残り時...
-
ファイルサイズが小さくなりま...
-
LD_LIBRARY_PATHって?
-
エクセルからアクセスのプロシ...
-
taskkill をバッチ処理できない。
-
python IDLEで訂正、削除のやり...
-
rshコマンドが実行できない
-
コマンドプロンプト Windows
-
ROBOCOPY cmdで正常に処理され...
-
バッチファイル内の各コマンド...
-
デフラグは途中で止めても効果...
-
エクセルで保存時に自動実行さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SONYの音楽ソフト「x-アプリ」...
-
エクセルの表にヘンな枠が・・・
-
pingは正常なのにtracerouteで...
-
ファイルサイズが小さくなりま...
-
windows10のごみ箱をrd /s /q C...
-
LD_LIBRARY_PATHって?
-
バッチファイル内の各コマンド...
-
linuxサーバーのキャッシュをク...
-
最初の一度しか実行されないロ...
-
Linux のシェルスクリプトの強...
-
エクセルからアクセスのプロシ...
-
python IDLEで訂正、削除のやり...
-
SPI非言語の問題 解説お願いします
-
shutdownコマンド実行の残り時...
-
ROBOCOPY cmdで正常に処理され...
-
taskkill をバッチ処理できない。
-
Openイベントを開始させないで...
-
ACCESSレポートをPDFに出力したい
-
sudoで実行したコマンドの実行...
-
信頼済みサイト登録をbatファイ...
おすすめ情報