colorコマンドで、プロンプト画面の文字と背景に着色は出来ますが、
-------- sample.bat --------
color 0b
echo 画面の色を変更しました。
----------------------------
特定の文字列(行)のみを指定した色にする事は可能でしょうか?

例えば、
-------- sample.bat --------
echo ここに注目
echo ここは平文
----------------------------
とある場合に、「ここに注目」のみを赤色に表示したい場合は、
どのようにすれば良いのでしょうか?(もし可能ならば)

windows 2000 sp2

A 回答 (2件)

WindowsNT/2000ではNo.1の回答のようなエスケープシーケンスをサポートしていないはずです。


たぶん難しいのではないでしょうか?
    • good
    • 0
この回答へのお礼

仰った通り、ダメでした。(残念!)

回答、ありがとうございました。

お礼日時:2002/01/29 15:28

Windows2000 ではなく Windows98SE での確認ですが、次のようにしたら赤色で表示できました。



例えば、「ここからここに注目ここまで」の中の「ここに注目」のみを赤にするには、

  echo ここから^[[1;31mここに注目^[[mここまで

のようにします。

ここで、「^[」というのは「^」「[」の2文字ではなく、ESC(文字コード 0x1B)の1文字を表します。
入力方法については、お手持ちのエディタにより異なりますので、エディタの説明書を参照して下さい。

x;ym の部分を色々かえると、様々な色で表示できます。
詳細はあちこちに出ていますが、その一つを参考URLに挙げておきます。

参考URL:http://www.linux.or.jp/JF/JFdocs/Bash-Prompt-HOW …
    • good
    • 0
この回答へのお礼

hirono_taさんの言われる通り、windows 2000では、エスケープシーケンスを
サポートしていないらしく、ダメそうです。

回答、ありがとうございました。

お礼日時:2002/01/29 15:27

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

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

Q朝6時にsample.vbsを実行するATコマンド

ATコマンドについて調べているのですが、朝6時にsample.vbsを実行するATコマンドの実行方法を教えていただけないでしょうか。

#NT4.0で実行。
#素人NT管理者補佐の立場。

#もしくは素人にわかりやすい参考サイトを・・・。

Aベストアンサー

モデムのATコマンドではなく、WindowsNTスケジュール機能のATコマンドなら...

ie5が入っていればTaskSchedulerが入るので、設定は簡単です。
マイコンピュータの中に「予定されているタスク」というのがあれば、それを開いて
「予定されたタスクへの追加」を起動しウィザードにそって登録しましょう。

TaskSchedulerがない場合、Scheduleを起動しコマンドベースでAT登録します。
■Scheduleの起動方法
 1.コントロールパネル→サービス
 2.Scheduleを選択して[開始(S)]をクリック
■ATで「sample.vbs」を毎6:00a.m.に設定する方法
 1.スタート→プログラム→コマンドプロンプト
 2.以下を入力
  at 6:00 /interactive /every:M,T,W,TH,F,S,SU "x:\sample.vbs"
  ※実行ファイル名はフルパスで指定する
 3.at とだけ入力し、上記内容が表示されればOK

atコマンドの内容は「at /?」と入力するか、スタート→ヘルプ で「ATコマンドを引く」を参照してください。
それほど複雑ではないので、これで十分かと思います。

モデムのATコマンドではなく、WindowsNTスケジュール機能のATコマンドなら...

ie5が入っていればTaskSchedulerが入るので、設定は簡単です。
マイコンピュータの中に「予定されているタスク」というのがあれば、それを開いて
「予定されたタスクへの追加」を起動しウィザードにそって登録しましょう。

TaskSchedulerがない場合、Scheduleを起動しコマンドベースでAT登録します。
■Scheduleの起動方法
 1.コントロールパネル→サービス
 2.Scheduleを選択して[開始(S)]をクリック
■ATで「sample.vb...続きを読む

Qリネームの為のbatファイル作成

Bmpファイル名の頭に全てP_がついています。
それを削除するbatファイルを作成しています。
P_****.bmp→****.bmp
下記を作成しましたが、★の部分で詰まっています。
-------
@echo off
IF EXIST b.bat del b.bat
for %%I in (J_*.bmp) do echo ren %%I ★%%I>>b.bat
call b.bat
-------
どなたかご教授ください。
よろしくお願いします。

Aベストアンサー

#3 ittochanさんのを改変した、

for /f "tokens=1,2* delims=_" %%i in ('dir /b P_*.bmp') do ren %%i_%%j %%j

で行けそうですね。

# 何年ぶりかで DOS の HELP、
# 勉強になりました(^^;。

QBATファイルで

Win2000で、バッチファイルでアプリケーションを同時に複数立ち上げる方法があると聞いたのですが、どのようにすれば良いのでしょうか?
 例えば、AccessのAファイルとExcelのBファイルとWordのCファイルを自動で立ち上げたいのですが。(同時にと思いますが、順次立ち上がってくれれば問題はありません)
 多分、MS-DOSのファイルとして作成するのかと思いますが。

Aベストアンサー

普通にそれぞれのファイルを拡張子付きで

a.mde
b.xls
c.doc

といった様に並べるだけです。
なぜかというと、拡張子で起動するアプリケーションが関連付けされているので、アプリケーションの起動パラメータでファイル名を指定するといった面倒なことは必要ありません。
当然ですが、上記はカレントディレクトリにそれぞれのファイルがあった場合です。
それぞれのファイルが特定のフォルダに入っているのであれば、フルパスで指定するとかで良いですね。

Qbatとcmdのちがいについて

WindowsNT4.0において、~.batと~.cmdの違いはあるのでしょうか?
もしあるとしたら、どのような違いでしょうか?
宜しく御願いします。

Aベストアンサー

明確な記述はないのではないので、あくまでも私見です。

CMDには、2つの形態があます。
1.バッチファイルとしての形態(shellといった方がよいかも知れません)
拡張子に、cmdまたは、batがついたものは、通常のバッチファイルとして使用可能で、call、goto、setlocal、echo、if、shift、endlocal、pause、%、for、remなど共通です。
この観点から見ると、Windows NT、Windows 2000、Windows XPでは、cmdもbat拡張子は同じといえるのではないでしょうか。
また、DOSと互換のAUTOEXEC.NTや、CONFIG.NTが、\SYSTEM32ディレクトリィで使用されています。

2.CMD.EXE(Windows NTから新しく出来た。)とCOMMAND.COM(旧来のコマンドインタープリーター)があります。両方とも存在します。

CMD.EXEは、Windows NT/2000/XPでのNativeなコマンドインタープリーターで、従来のDOSのCOMMAND.COMに比べると、より豊富な環境変数を提供しています。"set + Enter"でDOS時代より、さらに詳細な環境変数が表示されます。

以上ですが、私見ですので、専門家の方の意見を求めてください。

明確な記述はないのではないので、あくまでも私見です。

CMDには、2つの形態があます。
1.バッチファイルとしての形態(shellといった方がよいかも知れません)
拡張子に、cmdまたは、batがついたものは、通常のバッチファイルとして使用可能で、call、goto、setlocal、echo、if、shift、endlocal、pause、%、for、remなど共通です。
この観点から見ると、Windows NT、Windows 2000、Windows XPでは、cmdもbat拡張子は同じといえるのではないでしょうか。
また、DOSと互換のAUTOEXEC.NTや、CONFIG.NTが、\S...続きを読む

Qバッチファイル(.BAT)のパラメータ

バッチファイル(.BAT)をWindows2000Serverで実行する際、パラメータ付きで実行します。

2000Serverの1日前の日付をパラメータにしたいのですが可能でしょうか?(昨日のデータを抽出する)

以上、お願いいたします。

Aベストアンサー

とりあえず作ってみました。
これで前日の日付は取得できるはずです。
ただし、うるう年とか2000年問題には対応してません。
あと詳細なデバッグはやってませんのでエラーがあるかもしれません。

for /f "tokens=1 delims=/ " %%i in ('date /t') do set year=%%i
for /f "tokens=2 delims=/ " %%j in ('date /t') do set month=%%j
for /f "tokens=3 delims=/ " %%k in ('date /t') do set day=%%k

echo %year%
echo %month%
echo %day%

if %month%==01 goto jan
goto aaa

:jan
if %day%==01 goto gantan
set /a day=%day%-1
goto last

:gantan
set /a year=%year%-1
set month=12
set day=31
goto last

:aaa
if %day%==01 goto tuitati
set /a day=%day%-1
goto last

:tuitati
if %month%==02 goto feb
if %month%==03 goto mar
if %month%==04 goto spr
if %month%==05 goto may
if %month%==06 goto jun
if %month%==07 goto jul
if %month%==08 goto aug
if %month%==09 goto sep
if %month%==10 goto oct
if %month%==11 goto nov
if %month%==12 goto dec
goto last

:feb
set month=1
set day=31
goto last

:mar
set month=2
set day=28
goto last

:spr
set month=3
set day=31
goto last

:may
set month=4
set day=30

:jun
set month=5
set day=31
goto last

:jul
set month=6
set day=30
goto last

:aug
set month=7
set day=31
goto last

:sep
set month=8
set day=31
goto last

:oct
set month=9
set day=30
goto last

:nov
set month=10
set day=31
goto last

:dec
set month=11
set day=30
goto last

:last
set hizuke=%year%%month%%day%
echo %hizuke%

pause

とりあえず作ってみました。
これで前日の日付は取得できるはずです。
ただし、うるう年とか2000年問題には対応してません。
あと詳細なデバッグはやってませんのでエラーがあるかもしれません。

for /f "tokens=1 delims=/ " %%i in ('date /t') do set year=%%i
for /f "tokens=2 delims=/ " %%j in ('date /t') do set month=%%j
for /f "tokens=3 delims=/ " %%k in ('date /t') do set day=%%k

echo %year%
echo %month%
echo %day%

if %month%==01 goto jan
goto aaa

:jan
if %day...続きを読む


人気Q&Aランキング

おすすめ情報