echofile

(2023.10.4)

echofile 230407 DownLoad from [researchmap] 

テキストファイルと同じ内容のファイルを生成する(Windows batファイルの)echoコマンドをクリップボードにコピーするWindows batファイル。生成されるファイルの名前は元のファイル名の先頭に@をつけたもの。

例:sample.txt

こんにちは

3^3は9です。

10<100です。

このように,echoではそのまま表示できない文字があります。

をechofile.bat(またはそのショートカット)にドラッグ&ドロップすると,クリップボードに

echo こんにちは > @sample.txt

echo 3^^3は9です。 >> @sample.txt

echo 10^<100です。 >> @sample.txt

echo このように,echoではそのまま表示できない文字があります。 >> @sample.txt

コピーされる。これをbatファイルに貼り付けて実行すると,sample.txtと同じ内容の@sample.txtが生成される。

(要件)WSLのインストールされたWindows 10以降。

(制限)

用途

テキストファイルを参照して動作するbatファイルの場合,このechoコマンドでテキストファイルをbatファイルで都度生成して参照するようにすれば,テキストファイルなしで,batファイルだけで動作するようにできる。

perl

perlスクリプトを動かすbatファイルの場合,このechoコマンドでperlスクリプトをbatファイルで都度生成すれば,別ファイルのperlスクリプトなしで,batファイルだけで動作するようにできる。

例えば,perlスクリプトa.plに入力したいファイルをbatファイルの引数で指定する場合は,batファイルで

cd %~dp1

wsl -u root perl @a.pl "%~nx1"

と記述すれば,WSLとWindowsのパスの違いの問題を避けることができる。perlの出力ファイルは,パスを指定しなければ入力ファイルと同じフォルダに出力される。

同じことを標準入出力とリダイレクトを使って行うには:

cd %~dp1

wsl -u root perl @a.pl < "%~nx1" > out.txt

(画面に表示するメッセージはprint STDERRでSTDERRに出力する)。

出力をクリップボードにするには:

cd %~dp1

wsl -u root perl @a.pl < "%~nx1" | clip

(画面に表示するメッセージはprint STDERRでSTDERRに出力する)。

参考

echoコマンドで出力できない文字と出力方法

文字 出力方法

| ^|

< ^<

> ^>

& ^&

^ ^^

% %%