yuu_nkjm blog


2011-02-06(Sun) [長年日記]

[Windows][bat] バッチファイルで呼び出したコマンドの標準出力,標準エラーがリダイレクトできない

リダイレクト成功

(1)
SET CONF_DIR="conf/"
java ^
info.nkjm.yuu.Generator %CONF_DIR% 2>%SCRIPT_LOCATED_DIR%/syserr.log
(2)
SET CONF_DIR="conf/"
java ^
info.nkjm.yuu.Generator ^
 %CONF_DIR% 2>%SCRIPT_LOCATED_DIR%/syserr.log
(3)
java ^
info.nkjm.yuu.Generator ^
conf/ 2>%SCRIPT_LOCATED_DIR%/syserr.log
(4)
SET CONF_DIR=conf/
java ^
info.nkjm.yuu.Generator ^
%CONF_DIR% 2>%SCRIPT_LOCATED_DIR%/syserr.log

リダイレクト失敗

(5)
SET CONF_DIR="conf/"
java ^
info.nkjm.yuu.Generator ^
%CONF_DIR% 2>%SCRIPT_LOCATED_DIR%/syserr.log
(6)
java ^
info.nkjm.yuu.Generator ^
"conf/" 2>%SCRIPT_LOCATED_DIR%/syserr.log

まとめ

(1)が成功で(5)が失敗なのが意味不明だった.(4)と(5)の差から,変数CONF_DIRにダブルクォーテーションで囲んだディレクトリ名を格納していることが原因と分かる.エディタにハイライトして欲しいからって無駄にダブルクォーテーションで囲ったのが敗因か….

(一)
java -version 2>ver1.log
(二)
java "-version" 2>ver2.log
(三)
""java ""-version" 2>ver3.log"
(四)
""java ""-version" "2>ver4.log""
(五)
""java ""-version ""2>ver5.log""

上記の例では,(三)だけlogが作成されない.自分としては(二)を書いたつもりだったが,(三)のように解釈されてしまったんだと思う.

本日のリンク元
その他のリンク元
検索

トップ «前の日記(2011-02-05(Sat)) 最新 次の日記(2011-02-07(Mon))» 月表示 編集 設定
2006|01|06|12|
2007|06|09|
2008|01|03|04|06|07|08|09|10|12|
2009|01|02|05|06|07|08|10|11|12|
2010|03|04|05|06|07|08|09|10|11|
2011|01|02|03|04|05|06|07|08|09|11|12|
2012|01|02|04|06|07|08|10|11|12|
2013|01|02|03|07|08|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|
2015|01|02|07|11|12|
2016|01|03|05|07|08|09|