• ベストアンサー

echoの出力の最後のスペースを除去したい

テキストファイルにechoで出力するバッチファイルを作成しています。 echo出力の最後にスペースが1つだけ余分に追加されてしまいます。 これを除去するにはどうしたらよいでしょうか。 例えば、以下の内容が記載されたバッチファイルを実行すると、 出力の最後に不要な半角スペースが追加されます。    set COMMAND=ping 192.168.0.1 -n 1    echo %COMMAND% >> out.txt

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

実際に試すと #1 の方法は都合が悪いことがわかる. 方針はあってるんだけどね. リダイレクトって, 行の最後じゃなくてもいいんだよ.

nanako_04
質問者

お礼

このヒントで解決しました。 ありがとうございます。

その他の回答 (2)

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.3

To: Tacosan ご指摘ありがとうございます, 分かりきった問題だろうと決めつけず,テストケースを実行してみるべきでした。 1>>stdout,2>>stderr,おっしゃるとおりの結果でした。 Tacosanからの回答どおり,次のようにするとよいです。 set COMMAND=ping 192.168.0.1 -n 1 >>out.txt echo %COMMAND%

nanako_04
質問者

お礼

No2 の回答で解決しました。

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.1

自分自身で出力指定している次の空白を取り除けばよい。 echo %COMMAND%空白>> out.txt

nanako_04
質問者

お礼

他の方が勘違いしないよう、この回答は間違いであることを明記しておきます。 確かに、このサイトでは回答は善意で行われていると思いますが、 動作も確認せず勇み足で間違った回答をするのは、回答しないよりもまずいと私は思います。

関連するQ&A

  • バッチファイル実行結果が半角スペースが入ってしまう

    PC情報を採取してテキストファイルへ出力するバッチファイルを作成しました。 バッチファイル自体は正常に動作するのですが、テキストに出力されるシリアル情報に半角スペースが入った状態で出力されてしまいます。 半角スペースが入らないようにするためにはどのようにすればよいでしょうか。 (例)本来は「R8X00215」と出力されて欲しいのに、「R 8 X 0 0 2 1 5」と出力されてしまう。 (バッチファイルの中身) set NAME=user echo 【PC名】>C:\Users\%NAME%\desktop\%COMPUTERNAME%.txt hostname>>C:\Users\%NAME%\desktop\%COMPUTERNAME%.txt echo 【シリアル情報】>>C:\Users\%NAME%\desktop\%COMPUTERNAME%.txt wmic bios get serialnumber>>C:\Users\%NAME%\desktop\%COMPUTERNAME%.txt echo 【ipconfig情報】>>C:\Users\%NAME%\desktop\%COMPUTERNAME%.txt ipconfig>>C:\Users\%NAME%\desktop\%COMPUTERNAME%.txt

  • バッチでテキストを出力したときに改行ができない

    バッチファイルでテキストを出力するのですが、改行ができません echo 一行目 > C:\temp.txt ? echo 二行目 >> C:\temp.txt として結果C:\temp.txtファイル内に  一行目  二行目 ではなく  一行目  二行目 としたいのですが、、 ?にはいるものがわかりません。 echo " " >> C:\temp.txt としても""が入ってしまうし echo   >> C:\temp.txt (全角スペース)を入れても"ECHO は <ON> です。"とメッセージが出てしまいます。 わかる方お願い致します。

  • 半角スペースをリダイレクトしたい

    DOSコマンドで半角スペースのみをファイルにリダイレクト出力したいのですができません。 失敗例:  echo >D:\a.txt  @echo >D:\a.txt どうやったらできますか。お願いします。

  • バッチコマンドの「set」で入力した内容をファイルに出力する場合の問題点

    DOSのバッチコマンドで以下のようなものを作りました。 set /p abc= echo %abc% > nyuryoku.txt 画面から入力した文字を「nyuryoku.txt」に出力することを意図したものですが、2つ問題が出ています。 (1)何も入力しないと、「nyuryoku.txt」に「ECHO は <ON> です。」と出力されてしまいます。 これは「」(つまりNULL値)を出力できないでしょうか。 (2)「123」を入力すると「nyuryoku.txt」に「123 」と出力されてしまします。つまり最後に半角スペースがついてしまいます。 これは「123」を出力できないでしょうか。 すみません。おわかりになる方がいたら教えてください。

  • バッチファイルで改行の出力

    バッチファイルで,改行のみをファイルに追記したいのですがどのようにすればできますか? echo >> output.txt とすると「ECHO は <OFF> です。」と出力されてしまいます. 全角を出力すれば見た目は同じですが,純粋に改行のみの出力方法をお願いします.

  • VBAでテキスト出力時のスペースについて

    VBAで下記のようなテキスト出力を書いたのですが 出力されたテキストファイルの「No」部分の頭と数字のあとに半角スペースが入ってしまします。 半角スペースなしに出力させる方法を教えてください。 ちなみに「No」は書式指定なしの数字です。 Print #1, No; Chr(9); Intime; "/"; OutTime; Chr(9); text よろしくお願いします。

  • コマンド実行結果のファイル出力

    systeminfo echo list volume | diskpart のコマンドを実行結果をテキストファイルに出力したいのですが、 echo list volume | diskpart > "c:\status.txt" systeminfo >> "c:\status.txt" としてバッチで実行しても、何も出力されていないません。 コマンドを画面で入力すると、画面に表示されます。 どうしたらよいか教えてください。

  • テキストファイル内の半角スペースの削除

    よろしくお願いします。 OS:Windows Server 2003,Windows 2000 Server MS-DOSコマンドによるバッチで、あるテキストファイル(.txt)内 を検索し、半角スペースがあった場合は半角スペースを 削除するというものを検討中です。 あるテキストファイルには、「Dir /s /a <ディレクトリパス>」(★) の結果が出力されています。 ※http://okwave.jp/qa2630050.htmlの「その他問題点」の  回避手段を考えています。 http://www.fpcu.jp/dosvcmd/bbs/log/cat3/cat54/4-0515.htmlを 参考にし下記のようにバッチを組みましたが、★の結果から 半角スペースを削除した内容になりません。 ------- set infile=%1 set outfile=%2 for /f "delims=" %%A in (%infile%) do call :sub "%%A" goto :eof :sub set STR=%~1 set STR=%STR: =% echo.%STR%>>%outfile% ------- 何がまずいのでしょうか? <DIR>という文字列を含んでおり、"<" や ">" を考慮する 必要がある気はしていますが、どのように修正すればよいか、 なかなかうまくいきません。 修正点やアドバイスをいただけると幸いです。

  • バッチファイルでの計算方法

    一行のみのtxtファイル(1111.txt)に日付 スペース 時間 スペース 値 が格納されています。 バッチファイルにて上記値に定数(6666)をかけ単位を追加して出力(2222.txt)したいとおもいます。 以下のように書いてみましたが どこが悪いかよくわかりません。 どなたかお教えいただきたいと思います @ECHO OFF FOR /F "eol=# tokens=1,2,3" %%a in (1111.txt) SET /A x=6666 SET y=%%c*%x% DO ECHO %%a %%b %%y >2222.txt

  • 連続でpingを実行するバッチファイルがうまくいきません。

    連続でpingを実行するバッチファイルを作成してたんですが、うまくいきません。 実行すると、"プロセスはファイルにアクセスできません。別のプロセスが使用中です。"って表示されます。 日付と時間はテキストに記載されるんですが、pingの結果が記載されません。 バッチファイルの内容は以下の通りです。 @echo off echo -------------->>d:\result.txt echo PINGテスト結果>>d:\result.txt echo -------------->>d:\result.txt echo 実行年月日 >>d:\result.txt date /T>>d:\result.txt echo 実行時間 >>d:\result.txt time /T>>d:\result.txt for /L %%f in (1,1,254) do ping -n 4 -w 50 192.168.100.%%f>>d:\result.txt exit コマンドプロンプトで、 for /L %f in (1,1,254) do ping -n 4 -w 50 192.168.100.%f>>d:\result.txt と実行すると、pingの結果がテキストに記載されました。 よろしくお願いします。