お世話になっております。

Windowsのバッチファイルについての質問です。

Windowsのバッチファイル内で、さらにバッチファイルをcallコマンドに
よって、呼び出しているのですが、その呼び出したバッチファイルの
logを残したいのですが、実装方法が分かりません。
# UNIXのscriptコマンドのようなコマンドがあれば実装できると
# 考えたのですが、存在していないようです。

callコマンドは、リダイレクトorパイプが使えないらしいので、
以下のような記述だとlogを出力することができません。

call test.bat > test.log

ご存知の方がいらっしゃいましたら、ご教示下さい。

以上、よろしくお願いいたします。

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

A 回答 (2件)

>callコマンドは、リダイレクトorパイプが使えないらしいので、



何を見たか判りませんが、ガセですね。
-----A.bat----
call B.bat > X.txt
--------------
-----B.bat----
echo abc
--------------
あたりで確認してみてください。

スクリプト全体を見ないと何が悪いのか判りませんが、どこかに間違いがあると思われます。
    • good
    • 0

リダイレクトされずに画面に表示されるなら



call test.bat > test.log 2>&1

でもダメですか?
    • good
    • 0

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

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

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

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

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

Qwin8 画面解像度 を コマンドで

win8 画面解像度 を コマンドで

Aベストアンサー

ANo.2です。

了解です。別に解像度をコマンドで簡単に変更したかったのではなく、Windows8で解像度が変更できないのは、ドライバがない所為では? と言う質問だったのですね。

できたら、"WEBサイトで「コマンド操作で解決した」との記事を見たものですからの質問でした…" と書いてあったURLを載せていただくと良かったですね。

ASUS P5K-E は下記です。
http://www.asus.com/jp/Motherboards/P5KE/
http://www.asus.com/jp/Motherboards/P5KE/specifications/

ANo.3さんが仰るように、P5K-Eにはオンボードのグラフィックがありません。であれば、グラフィックボードを挿していると思うのですが、どのようなものなのでしょうか?

また、ASUSのサポートを見ると、ドライバの提供はWindows7までのようです。Windows8とは親戚のような関係ですので、Windows7のドライバが使える場合もあるかと思いますすが、どちらにしろここにはグラフィックのドライバはありません。
http://www.asus.com/jp/Motherboards/P5KE/HelpDesk_Download/ ← OSの種類を仮にWindows7にしてみると。

Windows8のインストールディスクには、メジャーなチップセットやデバイスのドライバなどが、標準ドライバとして登録されています。インストールした直後でも、ある程度はドライバをインストールしなくても動作してくれます。最適なドライバではないかも知れませんが、正常に動作していればそのままでも構いません。

それは、デバイスマネージャを見れば判ります。これで "?" が付いているデバイスを探して下さい。幾つかあると思いますが、"ほかのデバイス" のところには、機能していないデバイス(ドライバがない)が載っています。質問者さんの場合、"ディプレイアダプター" のところに "?" があるのかな? 下記に、私のWindows8.1 Pro 64bitのデバイスマネージャを載せておきます。二つ程ドライバがないデバイスがあります。
PC → 右クリック → プロパティ → デバイスマネージャ

恐らく、そのグラフィックボードのドライバをnVIDIAかAMDのサイトよりダウンロードしてインストールすれば、解決すると思われます。それ以外のドライバについては、チップセットのメーカーにあればダウンロードできるかも知れません。粘り強く探して行けば、ドライバの件は解消するでしょう。(ドライバが見つからないものも残るでしょうが、使うのに支障がなければそのままでも)

お願い>このような質問をされるときは、できるだけ環境を開示して頂くほうが、我々にとっては助かります。CPUは? メモリの容量は? マザーボード(これはOKですが)は? グラフィックボードは? HDDの容量は? 等々、無駄のように思われるかも知れませんが、グラフィックのドライバと関係ないものでも、パソコンの構成要素としてあると参考になります。その方が、我々の想像力を具体的な調査力に変換できます(笑)。

ANo.2です。

了解です。別に解像度をコマンドで簡単に変更したかったのではなく、Windows8で解像度が変更できないのは、ドライバがない所為では? と言う質問だったのですね。

できたら、"WEBサイトで「コマンド操作で解決した」との記事を見たものですからの質問でした…" と書いてあったURLを載せていただくと良かったですね。

ASUS P5K-E は下記です。
http://www.asus.com/jp/Motherboards/P5KE/
http://www.asus.com/jp/Motherboards/P5KE/specifications/

ANo.3さんが仰るように、P5K-Eにはオ...続きを読む

QBATファイルでstartからcallを行う方法

現在BATファイルにて指定されたアプリケーションを使用して、イベントログの抽出を行っています。
元々MainBATとSubBATの作成を行い、1台毎に作業を行っていたのですが
台数が非常に多い為、MainBatの分割を行い、その上にMainBatを一度に起動するBAtファイルを作成した所
SubファイルのCallが認識できなくなりました。
申し訳ありませんが、作業を行う方法がございましたら教えて下さい。

本来の作業方法

MainBAT
Call sub サーバー名
Call sub サーバー名
Call sub サーバー名
Call sub サーバー名
Call sub サーバー名
Call sub サーバー名
Call sub サーバー名
Call sub サーバー名
Call sub サーバー名

Subファイルにてアプリケーションの起動
アプリケーション名 %1


上記をMain1、Main2、MAin3、Main4と分割しその上に4つのBATを実行するALLBATの作成し実行

ALLBAT
start Main1.bat
start Main2.bat
start Main3.bat
srart Main4.bat

Main1.bat
Call sub サーバー名

Sub.batの中身
アプリケーション名 %1

この%1の部分が認識できなくなってしまいました(他に%2 ~ %9まで変更してみたが不可能)
このcallの部分を認識できる方法がありましたら教えて下さい。

現在BATファイルにて指定されたアプリケーションを使用して、イベントログの抽出を行っています。
元々MainBATとSubBATの作成を行い、1台毎に作業を行っていたのですが
台数が非常に多い為、MainBatの分割を行い、その上にMainBatを一度に起動するBAtファイルを作成した所
SubファイルのCallが認識できなくなりました。
申し訳ありませんが、作業を行う方法がございましたら教えて下さい。

本来の作業方法

MainBAT
Call sub サーバー名
Call sub サーバー名
Call sub サーバー名
Call sub サーバー...続きを読む

Aベストアンサー

#1です。
「具体的・客観的」というのは、「みたまんま」を書いて欲しかったのですが。
質問にお書きのようなファイル構成で実行すると、Main*.bat の個数だけのコマンドプロンプトが新たに開いて、そこでは本来、

Call sub サーバー名
アプリケーション名 サーバー名

と表示されるはずですが、これが

Call sub サーバー名
アプリケーション名

となるのですか?いずれにせよ、どこかで何らかのミスがあるんでしょうが、とりあえず、アプリケーションが関係していないこと、また%1が空になっているか確認するために、sub.batの中身を

notepad "%1"

に一時的に変更してやってみてください。どういう現象が起こりますか?

質問文を見た限りどこもおかしくないので、実際にテストしているスクリプトを書き換えて質問文に書いていると思いますが、そのときに情報が失われている可能性もあります。

Qwin2000でコマンドプロンプトにsysteminfoを表示させるにはどうすればいいでしょうか?

http://www.atmarkit.co.jp/fwin2k/win2ktips/506sysinfo/sysinfo.html
を読んで試してみたのですが
コマンドプロンプトに「systeminfo」と入力すると
「'systeminfo' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
となってしまいます。

win2000は対応していないのでしょうか?

目的としては「最初のインストールの日付」が知りたいのですが
systeminfo以外で調べる方法はありますか?

よろしくお願いします。

Aベストアンサー

systeminfoは、XPかWindows2003以降で追加された機能ではなかったかと。

XPであれば、
コマンドプロンプトで

start Msinfo32.exe

または「ファイル名を指定して実行」で

Msinfo32.exe

で、近い情報を得る事ができます。

ですが、systeminfoの方がより詳細な情報を得られます。

2台以上のPCがあって、1つがXPで、かつLANで接続可能であれば、systeminfoはリモートPCのスキャンもできます。
(リモート対象はWindows2000でもOK)

Qコマンドプロンプトのコマンドを使ってバッチファイルを作ってみたいのですが

プログラミングについてはコマンドプロンプトでバッチファイル(ログファイルの作成など)を何度か作成したことのあるだけの初心者なのですが、
バッチファイルは簡単で幅広い実用性があるように感じています。
 コマンドプロンプトを使ったバッチファイルでどのようなことができるのか実用例が載っている本を探しています。
 これは役に立つ!という本がありましたら是非教えていただけませんか?

Aベストアンサー

バッチファイルの解説本は10年くらい前は結構ありましたが、ここ数年はほとんど出版されていません。
多くが絶版になっていると思います。

バッチファイルで済む内容ならバッチファイルでやったほうが簡単なので今でも使うことはあります。
覚えても損はありませんが、変数の使い方,IF,FORあたりの肝となる部分を覚えればバッチファイルの守備範囲としては十分かと。
わざわざ本を探して買わなくとも、ネットで調べる程度でいいと思います。

ちょっと凝った内容になると役不足になるので、これから覚えるのならVBScriptがExcelやWordでも応用できてオススメです。

Qwin8.1でコマンドプロンプト

Win8.1 64bit版に変更で苦労しています。
最近、W8.1を32bit版から64bit版に変更しつつあるものですが、XPとのデュアルブート環境を構成するために試行錯誤を繰り替えしています。

(内容、構成を自分好みにする過程で何回か起動不調を起こしています、)

そこで起動不能に陥ってしまった場合の回復手段の一つで有るコマンド入力によるBoot ini
の書き換え?というのをしてみたいと考えています。

XPにおける「bootocfg /rebuild」 など、何度か試してうまくいったり、いかなかったりの経験は
何回かは体験していますが・・・
W8.1におけるコマンドが分からず困っています。
(ちなみに、「fixboot」 を試した結果では認識されませんでした)

Win8~におけるこれらのコマンドをご存じの方にご教示をお願いします。
もしくは、コマンドの解説文等の所在でも結構です、よろしくお願いします。

(質問者の理解度が低いためピントが外れているかも知れませんがご容赦ください)

Aベストアンサー

Windows XPとWindows8.1とのデュアルブートは、Windowsの古い方からインストールし、順次新しい方にインストールすれば、古い方のXPの仕様は、新しいWindows(今回の場合、Windows8.1)では認識できるため、デュアルブート構成を自動的に作ることは可能だといろんな方がレポートしています。

WEB検索されるといろいろな記事をたくさん見つけることはできます。
検索キーとしては、
「Windows XPと8のデュアルブートのやり方」
その中の比較的分かりやすく書かれたものを、

1.Windows XPとWindows8のマルチブート
http://www.lifeboat.jp/blog2/?p=2478

2.windows XPとwindows 8のデュアルブート
windows XPとwindows 7とのデュアルブートを行う場合と同じ方法で、デュアルブート環境を構築することが可能。
http://windows7.wiki.fc2.com/wiki/XP%E3%81%A8%E3%81%AE%E3%83%87%E3%83%A5%E3%82%A2%E3%83%AB%E3%83%96%E3%83%BC%E3%83%88

XPとのデュアルブート
Windows XPとWindows7のデュアルブート
HDD1台毎にそれぞれOSをインストールする場合
Windows7インストール後にWindows XPをインストールする場合

XPの場合、ブートローラがntldr と言ったものを使用するため、Windows 8上にこれをコピーすることになります。
WindowsXPインストール後にWindows7をインストールする場合
Windows7のBOOTMGRでXPのNTLDRを検出できるので、起動時の選択で「以前のバージョンのWindows」を選べばXPを起動可能。
ただ、Windows XP用のドライバが、メーカーパソコンの場合、公開されていないためにこれが問題となることが多く、諦めることになるかも知れません。

Windows XPとWindows8.1とのデュアルブートは、Windowsの古い方からインストールし、順次新しい方にインストールすれば、古い方のXPの仕様は、新しいWindows(今回の場合、Windows8.1)では認識できるため、デュアルブート構成を自動的に作ることは可能だといろんな方がレポートしています。

WEB検索されるといろいろな記事をたくさん見つけることはできます。
検索キーとしては、
「Windows XPと8のデュアルブートのやり方」
その中の比較的分かりやすく書かれたものを、

1.Windows XPとWindows8のマルチブ...続きを読む

Q特定のディレクトにあるCSVファイルの一覧、ファイルの中身を取得するバッチコマンドについて

いつもお世話になっております。
以下の内容のバッチコマンドを作成したいのですが、
どのように作成すれば分かりません。

大変申し訳ございませんが、
教えて頂けますでしょうか。

【内容】
1.特定のディレクトにあるCSVファイルの一覧を取得して、
 そのCSVファイルの内容を1行ずつ表示したい。

以上です。
よろしくお願いいたします。

Aベストアンサー

CSVファイルのある特定のディレクトリに
以下の内容でバッチファイルを作成して実行。

@echo off
setlocal enabledelayedexpansion
dir /B *.csv >list.txt
for /F "delims=" %%i in (list.txt) do (
set /P DATA=<%%i
echo !DATA!
)

こういうことかな?

QWin2000及びXPで使えるDOS コマンド

タイトルの通りですが、Win2000及びXPで使えるDOS コマンドについての解説が載っているサイトを探しています。できればコマンドのスイッチ等も載っている方が良いのですが…。ご存知の方、よろしくお願いします。

Aベストアンサー

ここは?

参考URL:http://www.atmarkit.co.jp/fwin2k/

Qバッチファイルでファイル名をリネームのコマンド

お世話になります。

バッチファイルのコマンドについて質問させていただきます。

【やりたいこと】
AAA.batというバッチファイルと”MU_日付.txt”というテキストがあります。
このテキストの日付部分は毎回変わります。例)MU_111226.txt
このバッチファイルとMU_日付.txtは同じ階層にあります。

まず、このAAA.batをクリックしたら、この”MU_111226.txt” を ”読み込み.txt” という名前にリネームします。このリネーム処理の時、テキスト名が”MU”で始まるファイル以外は対象にしないようにしたいのです。

次にある処理を行って、その処理が済んだら”読み込み.txt”を”END_MU_111226.txt”といった元のファイル名に”END_”を付けた形でリネームして、同じ階層にある「処理済み」フォルダへ移動させたいのです。
”END_” + ”元のファイル名”が無理であれば、”MU_111226.txt”を「処理済み」フォルダへ移動させるだけでも構いません。

このような処理は可能でしょうか?
どなたかご教授いただけますでしょうか。よろしくお願い致します。

お世話になります。

バッチファイルのコマンドについて質問させていただきます。

【やりたいこと】
AAA.batというバッチファイルと”MU_日付.txt”というテキストがあります。
このテキストの日付部分は毎回変わります。例)MU_111226.txt
このバッチファイルとMU_日付.txtは同じ階層にあります。

まず、このAAA.batをクリックしたら、この”MU_111226.txt” を ”読み込み.txt” という名前にリネームします。このリネーム処理の時、テキスト名が”MU”で始まるファイル以外は対象にしないようにしたいの...続きを読む

Aベストアンサー

PCからではないのて、詳細は省いて記します。

ファイル名の変更は、 
  ren
というコマンドを使います。
またあるファイルを別のディレクトリ(フオルダ)に、移動させるには、
 move
というコマンドを使います。その際、ファイル名の変更も可能です。
実際のコマンド記述方法は、コマンドプロント画面で
  コマンド /? (例: move /? )
と打ち込めば表示されますからご確認下さい。

なおファイル名の特定部分が変わるなら、その部分を
  *
にしてあげれば良いです。

ren aaa-*.txt aaa-999.txt

上記の例では、aaa- で始まり 、拡張子がtxtのファイルは、
aaa-999.txt  というファイル名に変わります。
とくて

QVC++コマンドプロンプトでwin32コンパイル

 c言語でwin32AIを開発しようと思ったのですが、c言語のwin32API
プログラムをVisual C++2008のコマンドプロンプト経由でビルドするこ
とは出来るのでしょうか?回答よろしくお願いします。

Aベストアンサー

2008は知りませんが、
makefile 等にリンクコマンドを書くときにライブラリを全部指定する必要があるかも。
LIBS = user32.lib gdi32.lib ... 使用APIが入ってるライブラリを指定

すこしやってればだいたい覚えると思いますが。

MSの nmake.exe は通常のmakeと仕様が違うので使わないほうがいいかも。
gnumakeが良い

Qコマンドプロンプトのバッチファイル

バッチファイル内でInternetExplorer(以下IE)を
3つ起動させようとしています。

ただ単に

"[IEのパス]\iexplorer.exe"

と3行書いただけだと、ますIEがひとつ開いて、とまってしまい
開いたIEを閉じるとまたIEが開き、それを閉じたらまたIEが開く。

と言うように、閉じないとバッチファイルが先に進んでくれません。

ウィンドウを閉じなくても先に進んでくれる方法は
ありますでしょうか?

おわかかりになる方、ご助言願います。

Aベストアンサー

startコマンドを使うと実現できます。
この場合、IEXPLORE.EXE にフルパスは不要です。

start IEXPLORE.EXE
start IEXPLORE.EXE
start IEXPLORE.EXE


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

人気Q&Aランキング

おすすめ情報