プロが教えるわが家の防犯対策術!

お世話になってます

コマンドプロンプトで
echo "こんにちは"
とするとプロンプトに
こんにちは
と書き込まれます。
echo "こんにちは" >> file.txt
とするとfile.txtに
こんにちは
と書き込まれます。

では、1行で
プロンプトとfile.txtの両方に
こんにちは
と書き込むことは出来ますか?

file.txtは上書きではなく、追記で行いたく思ってます。

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

残念ながらそのような機能は無いはずです。



ので、少し面倒臭いですが自分で作りましょう。

バッチファイル内で行う場合、
-----
Call :echoEx こんにちは
Exit

:echoEx
echo %*
echo %*>>file.txt
Exit /b 0
-----
この:echoExというサブルーチンが画面とファイルに出力する部分です。
echoコマンドの代わりにCall :echoExを呼んで使います。

echo こんにちは

Call :echoEx こんにちは


コマンドプロンプト上で手打ちの時であれば、似たようなバッチファイルをつくりましょう。
例えば echoEx.batという名前で
-----
echo %*
echo %*>>file.txt
Exit /b 0
-----
のようなバッチファイルを作成し、
echoコマンドの代わりにechoEx.batをコールして使います。

echo こんにちは

echoEx.bat こんにちは
    • good
    • 2
この回答へのお礼

ぐっじょぶだわ。
応用がすごくきくし
こちらをベストアンサーにさせていただくわね。

ありがとう。

お礼日時:2011/02/24 03:54

要するにこんなことでしょ


http://fpcu.on.coocan.jp/dosvcmd/bbs/log/cat8/ca …

teeコマンドのDOS版(その昔、ASCIIから出ていたような)をさがしてみれば解決だと思いますが
    • good
    • 1
この回答へのお礼

まさにこれだわね。
コマンドプロンプトにもteeがあればいいのに。
同じことを考えた人いたのね。

ありがとう

お礼日時:2011/02/24 03:53

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q処理結果(標準出力と標準エラー出力)をファイルと画面の両方に出力する方

処理結果(標準出力と標準エラー出力)をファイルと画面の両方に出力する方法はありますか?

当方
処理結果(標準出力と標準エラー出力)をファイルに出力する際に

iroirona_command > log.log 1>&2 ・・・ファイルに出力されるが画面には表示されない。

iroirona_command ・・・画面には表示されるがファイルには出力されない。

と書いて標準出力と標準エラー出力を出力させているのですが、
ファイルと画面の2つの出力先に出力したいと考えています。

可能なのでしょうか?

環境
Windows XP SP3

Aベストアンサー

http://unxutils.sourceforge.net/
とか
MinGW
とか
http://technet.microsoft.com/ja-jp/interopmigration/bb380242.aspx
とか
http://www.vector.co.jp/soft/winnt/util/se241763.html
とか

Qbatファイルの結果をテキストに吐き出すには?

以下のようなWindowsユーザーのパスワード変更batの結果(正常に出来たかどうか?)をCドライブに吐き出したいのですが、どうbatファイルを書き換えればよいでしょうか?
(とりあえず以下の内容でbatをたたいたのですが、うまく結果が出ません。。。)

henkou.bat
--------------------------------------
net user "test user1" ps123456 /domain
net user "test user2" ps456789 /domain
henkou.bat > c:\henkou結果.txt
pause
--------------------------------------

吐き出されたhenkou結果.txt
--------------------------------------
C:\>net user "test user1" ps123456 /domain
--------------------------------------

DOS画面(吐き出したいもの)
--------------------------------------
C:\>net user "test user1" ps123456 /domain
コマンドは正常に終了しました。

C:\>net user "test user2" ps456789 /domain
コマンドは正常に終了しました。

C:\>henkou.bat 1>c:\henkou結果.txt
--------------------------------------

以下のようなWindowsユーザーのパスワード変更batの結果(正常に出来たかどうか?)をCドライブに吐き出したいのですが、どうbatファイルを書き換えればよいでしょうか?
(とりあえず以下の内容でbatをたたいたのですが、うまく結果が出ません。。。)

henkou.bat
--------------------------------------
net user "test user1" ps123456 /domain
net user "test user2" ps456789 /domain
henkou.bat > c:\henkou結果.txt
pause
--------------------------------------

吐き出されたhenkou結果.t...続きを読む

Aベストアンサー

henkou.bat
--------------------------------------
@ECHO OFF

IF NOT EXIST %temp%\Redirect.txt GOTO REDIREXEC

@ECHO ON

net user "test user1" ps123456 /domain
net user "test user2" ps456789 /domain

@ECHO OFF

GOTO END

:REDIREXEC

ECHO REDIRECT > %temp%\Redirect.txt

CALL TEST.BAT > c:\henkou結果.txt

DEL %temp%\Redirect.txt

PAUSE

:END
--------------------------------------

こんな感じでどうでしょうか。

Qコマンドプロンプトのテキストログ自動保存の方法

コマンドプロンプトの画面でログ表示をするには、バッファーサイズ999B、バッファー数999が最大のようですが、それ以上のログを取得するには「ctrl+a → ctrl+c → ctrl+p」でコマンドプロンプトのテキストログをテキストエディタに周期的にコピペするしかないと思います。

コマンドプロンプトに連続的に表示されるテキストログを「ほぼ全て」テキスト保存したいです。

1)コマンドプロンプトでctrl+a → ctrl+c
2)テキストエディタでctrl+p
3)10秒待機
4)コマンドプロンプトでctrl+a → ctrl+c
5)テキストエディタでctrl+p
6)10秒待機



という作業をしたいのですが、これを手作業でやらずに自動でできないものかと思います。

簡単にプログラムを作ってワンクリックでコマンドプロンプトに表示されるテキストログの「ほぼ全て」をテキスト保存する術をどなたかご教示頂けないでしょうか。

当方、プログラムスキルは0ですがソースファイルと、コンパイル方法のご教示を頂ければ、なんとかできるかもと思います。

手取り足取りになりますが、宜しくお願いいたします。

コマンドプロンプトの画面でログ表示をするには、バッファーサイズ999B、バッファー数999が最大のようですが、それ以上のログを取得するには「ctrl+a → ctrl+c → ctrl+p」でコマンドプロンプトのテキストログをテキストエディタに周期的にコピペするしかないと思います。

コマンドプロンプトに連続的に表示されるテキストログを「ほぼ全て」テキスト保存したいです。

1)コマンドプロンプトでctrl+a → ctrl+c
2)テキストエディタでctrl+p
3)10秒待機
4)コマンドプロンプトでctrl+a → ctrl+c
5)テキストエディタで...続きを読む

Aベストアンサー

そのコマンドにもよりますが、リダイレクトという方法で出力結果をファイルに保存できます。
dir > log.txt
等と、 > ファイル名 とすると、「ファイル名」に出力されます。
詳しくは「Windows リダイレクト」で検索してみてください。

あとは、ログ保存できるツールを使う。例えば
http://www.vector.co.jp/soft/dl/win95/util/se144974.html

Qbatである文字列内に特定の文字列が含まれているか確認したい

batファイルの中である変数「abc」の中に「test」という文字が含まれていたら○○を行なうという分岐を作成したいのですが、どのように行なえばよいのでしょうか?

そのまま、ずばりのお答えお待ちしております。

よろしくお願い致します。

Aベストアンサー

大文字小文字を区別しなくていいなら、

if not "%abc:test=%" == "%abc%" echo 含まれていた

区別するなら、

echo %abc% | find "test" >NUL
if not ERRORLEVEL 1 echo 含まれていた

Qバッチ処理でファイルの中身を変数に入れるやり方

あるファイルの中には1行の文字列があります。
このファイルをバッチで読み取り、変数に設定したいです。

例:
test.txt
abcacbacbacbacbacbacbacbacb

test,bat
set DATA=[test.txtを読み込んだ値]

よろしくお願い致します。

Aベストアンサー

これですね。

参考URL:http://www.upken.jp/kb/dqvgHNRUxwFDkmtoqEwfXHUjDrevNv.html

QDOSコマンドで、標準出力を出力しないようにするには?

Windowsのバッチファイルでコマンドを実行する際、標準出力をディスプレイに表示したくないのですが、どのようにするのが、一般的なのでしょうか?
CDで実行するので、ファイルに出力はしたくありません。
UNIXとかだと、nullにパイプするようなのですが…。

Aベストアンサー

>UNIXとかだと、nullにパイプするようなのですが…。

リダイレクトですね。

同様です。
標準出力だけなら「c:\> command > nul」
エラー出力もなら「c:\> command > nul 2>&1」

QコマンドプロンプトのERRORLEVELについて!

コマンドプロンプトの記述で、ERRORLEVELというのがありますが
そのERRORLEVELが、0の場合は正常終了と考えていいのでしょうか?

Aベストアンサー

>if not ERRORLEVEL 1 goto aaa
>教えていただいた上記記述なんですが、
>1じゃないということは、2~255も含まれるのではないのでしょうか?
>素朴な疑問ですいません。

if文の文法については、if /? で調べてください。

if ERRORLEVEL 1 goto aaa は、ERRORLEVEL が1以上の時にgoto aaaするという意味です。ということを#4の人が書いてるのですが・・・
従って、その否定である、
if not ERRORLEVEL 1 goto aaa は、ERRORLEVEL が1未満つまり0のときにgoto aaaします(負になることはないので)。

Qバッチファイル 文字列にスペースがある場合

for /f %%A in ('dir /b /s c:\a aa*.pdf') do copy "%%A" D:\

これはcドライブのa aaというフォルダ名の中を検索するコードですが、
フォルダ名にスペースがあるため、うまく動きません。

"a aa"のように""で囲ってみましたが、駄目でした。

どうすれば良いのか、教えていただきたいので、お願いします。

Aベストアンサー

for /f %%A in ('dir /b /s c:\"a aa"\*.pdf') do echo copy "%%A" D:\
のようにecho でどのようなコマンドが実行されているか確認しましょう。

この記述ではdirコマンドで表示されるパスの中に空白があるため %%A には空白までの文字列しか代入されません。
以下のように修正して試してみてください。

for /f "delims=" %%A in ('dir /b /s c:\"a aa"\*.pdf') do copy "%%A" D:\

Qバッチファイルで2つ以上の変数を連結し、1つの変数にしたい。

Windows2000でバッチファイルを作っています。
バッチファイルが受け取る2つのパラメータを %1 %2とすると、
それを連結して、新たな変数 A を作りたいのですが、どのようにすれば良いのでしょうか。

Aベストアンサー

SETで変数にパラメータをセットすればOKだと思います。

例)
SET A=%1%2
echo %A%

Qバッチでテキストファイルから任意の行のみ取得したい

batファイルを作成していて、
txtから特定の行のみをとりだし、変数に入れたいです。
どうもよくわからないので質問したいと思います。
まず以下の様なテキストファイルがあります。
-------------------
111
222
333
-------------------
実際の値、行数は違いますが、こんな感じに文字列が複数行並んでいます。

行いたい動作は、
-----------------------------------------
1.テキストファイルの1行目を変数Textに入れる(set Text=111)
2.変数Textを使用し色々処理をする
3.テキストファイルの2行目を変数Textに入れる(set Text=222)
4.変数Textを使用し色々処理をする
-----------------------------------------
コレを繰り返します。
2と4は同じ動作ですので、行数のカウンタを設定しループさせる予定です。
n行目を全て取り出す方法がわかれば行けると思うのですが、
どうも見つかりません。ご存知の方がいればお教え願いたいと思います。

batファイルを作成していて、
txtから特定の行のみをとりだし、変数に入れたいです。
どうもよくわからないので質問したいと思います。
まず以下の様なテキストファイルがあります。
-------------------
111
222
333
-------------------
実際の値、行数は違いますが、こんな感じに文字列が複数行並んでいます。

行いたい動作は、
-----------------------------------------
1.テキストファイルの1行目を変数Textに入れる(set Text=111)
2.変数Textを使用し色々処理をする
3.テキストファイルの2行目を変数T...続きを読む

Aベストアンサー

No3ですが、たぶん提示したスクリプトを見ると、ある事に気がつくはず?

findstr /n /r "." a.txt | findstr /r "^3:"

で3行目を表示してくれます。え!? それだけ。そうなんです

ただ、あと、先頭の”3:” をどうやって切り離すか? と言う問題にぶつかる。さらにファイルに先頭に”3:”があった場合、どうするのか? さらに、findstr の正規表現の動作が??? 表示すれるのはいいが、変数にどうやってセットするのか?

となる。結局 for 文を使いまわす事になります。

まあ、適当に改変して、上記の問題を解決してください。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング