私はDOSコード のための整数としてキーコードを返すプログラムを書いたが、変数として出力する方法を知らない。MS-DOSコマンドの出力を変数として取得する方法
注:私は/ Windows 98のMS-DOS 7を使用していますので、私はFOR /F
を使用することはできませんかSET /P
が
は誰もが私はそれを行うことができる方法を知っていますか?
私はDOSコード のための整数としてキーコードを返すプログラムを書いたが、変数として出力する方法を知らない。MS-DOSコマンドの出力を変数として取得する方法
注:私は/ Windows 98のMS-DOS 7を使用していますので、私はFOR /F
を使用することはできませんかSET /P
が
は誰もが私はそれを行うことができる方法を知っていますか?
いくつかの解決策は、Eric Pement hereによって記述されています。しかし、古いバージョンのcmd
では、著者は外部ツールを使用することになりました。例えば
、ダグラスBolingによってSTRINGS
のようなプログラムツールは、次のコードをすることができます:
echo Greetings! | STRINGS hi=ASK # puts "Greetings!" into %hi%
同じことがリチャード・ブロイヤーによってASET
のために行く:代替純粋の
echo Greetings! | ASET hi=line # puts "Greetings!" into %hi%
ワンDOSソリューションでは、プログラム出力をファイル(以下の例ではANSWER.DAT
という名前)にリダイレクトしてからsp環境的に準備されたバッチファイル。
[I] nで、我々はコマンド
set MYVAR={the contents of ANSWER.DAT go here}
を発行できるようにする必要があるバッチファイル:上記のページを引用します。 MS-DOSはファイルに"set MYVAR="
を簡単に追加する方法を提供していないので、これは難しい作業です。[...]通常のDOSテキストファイルとバッチファイルは、 (Ctrl-M、16進数0D、またはASCII 13)および改行(Ctrl-J、16進数0AまたはASCII 10)を入力します。バッチファイルでは、Ctrl-Jを行の途中に埋め込むことができる必要があります。
多くのテキストエディタは、これを行う方法があります:はCtrl-J(Win95の/ 98とDOS EDIT、VDE)が続くはCtrl-Pを経て、はCtrl-Qプレフィックス(Emacsの、経由PFE)、ALTとテンキーパッド(QEdit、Multi-Edit)、または指定されたファンクションキー(Boxer)を使用して直接入力します。他のエディタはこれを絶対にサポートしません(メモ帳、編集パッド、MS-DOS 6.22以前のバージョンからの編集、VIMは改行のみをバイナリモードで挿入できますが、通常のテキストモードでは挿入できません)。あなたがそれを行うことができる場合
、あなたのバッチファイルは次のようになります。あなたは上記の3行目に^ Jを参照してください
@echo off :: assume that the datafile exists already in ANSWER.DAT echo set myvar=^J | find "set" >PREFIX.DAT copy PREFIX.DAT+ANSWER.DAT VARIAB.BAT call VARIAB.BAT echo Success! The value of myvar is: [%myvar%]. :: erase temp files ... for %%f in (PREFIX.DAT ANSWER.DAT VARIAB.BAT) do del %%f >NUL
は、改行は、その時点で埋め込まれなければなりません。あなたのエディタは、円を埋め込んだ四角いボックスとして表示することがあります。