82623


バッチファイルとTera Term マクロを同じフォルダに設置し、バッチファイルをダブルクリックして起動しても、すぐに画面が消えてしまいます。

また、バッチファイルの起動方法をコマンドプロンプトから起動すると、以下のようなエラーが表示されていまいます。

なお、Tera Term マクロを直接ダブルクリックすれば、マクロは正常に動作しております。

バッチファイルの何が間違っているのか分からない状態なので、解決策を教えていただければと思います。

バッチファイル

[code]

    @echo off
    
    sample.ttl
    
    PAUSE
    
[/code]

コマンドプロンプトから起動時のエラー

[code]

    C:\work\Script\bat>・・@
    '@' は、内部コマンドまたは外部コマンド、
    操作可能なプログラムまたはバッチ ファイルとして認識されていません。
    
[/code]


CC BY-SA 4.0
2021-09-21T00:13:36.300
82609
2022-01-19T15:06:20.590
2021-09-21T00:45:59.537
3060
question
batch-file
バッチファイルが起動しない


問題点１  
過去からの互換性を維持する目的で、現在においても「バッチファイル」は `cmd.exe`
上で動かし、なおかつ（デフォルトでは）各国語の伝統的エンコーディングを使う仕様です。つまり日本語ではバッチファイルとして使うべきエンコーディングはいわゆる
`Shift-JIS` もちょっと厳密には `CP932` なり `MS932` となります。（現代的 `UTF-8` が使えないわけではないが詳細略）

`CP932` エンコードで動作している `cmd.exe` に `BOM` つき `UTF-8` エンコードしたバッチファイルを与えると `BOM`
である `EF BB BF` も `CP932` な文字と解釈するので `cmd.exe` から見て文字化けとなり `'・ｿ@echo'
は、内部コマンドまたは` 以下略のエラーが表示されることになります。
あなたのところの表示とオイラのところの表示が若干違うのが微妙に気になるところですが深く追求しません。

なので回答１として「バッチファイルは `Shift-JIS` または `CP932`
で保存しましょう」メモ帳なら名前を付けて保存画面の下のほう「文字コード」で `ANSI` ですね。他のエディタならそれぞれの手順を探してみてください。

* * *

問題点２  
`cmd.exe` は拡張子 `.ttl` について知りませんので、これを直接バッチファイル内で起動しようとしても失敗します。 `cmd.exe`
で起動できるのは拡張子 `.EXE` など環境変数 `PATHEXT=` で指定されているもののみです。なので直接起動すべきは Tera Term 本体
EXE つまりは `ttermpro.exe` ということになります。起動時にマクロを指定したいのなら [Tera Term Pro
コマンドライン](https://ttssh2.osdn.jp/manual/4/ja/commandline/teraterm.html) の解説に従って
`/M=` を指定することになります。マクロファイルが Tera Term 本体 EXE
と同じディレクトリにあるときはパスを略すことができるので、回答２バッチファイルを Tera Term
インストールディレクトリに配置できるなら（この行為はセキュリティ的に禁止なのですが）

[code]

    @echo off
    ttermpro /m=sample.ttl
    pause
    
[/code]

とすればもしかしたらあなたの期待通りかもしれません。バッチファイルやマクロファイルをほかの場所に保存するなら２行目は `C:\Program Files
(x86)\teraterm\ttermpro` なり、あなたのインストール先ディレクトリに合うようにフルパス記述してみてください。


CC BY-SA 4.0
2021-09-21T03:28:54.050
82613
2021-09-21T03:28:54.050
8589
82609
answer


（Explorerにて）「Tera Term
マクロを直接ダブルクリックすれば、マクロは正常に動作しております」とのことですが、これは関連付けに従って起動されています。

バッチファイルにおいて、Explorerと同等の関連付けに従ってプログラムを起動するには[`START`コマンド](https://docs.microsoft.com/ja-
jp/windows-server/administration/windows-commands/start)を使用します。

[code]

    START sample.ttl
    
[/code]


CC BY-SA 4.0
2021-09-21T13:56:05.200
82623
2021-09-21T13:56:05.200
4236
82609
answer