[前の記事]« FINDSTRの実行結果によって条件分岐させたい
[次の記事]【情報】CMD.EXEの構文解析 »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「リダイレクト(> <)、パイプ( | )、その他の特殊記号」索引へ

【未解決】「環境変数を参照してリダイレクト」がうまくいかない

495.
コマンドのオプションを環境変数で指定
2005年05月20日(金) 13時04分
SH
●DOS/Windowsのバージョン↓

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

コマンドのオプションを環境変数で指定することは
駄目なのでしょうか?

括弧内で
(
set option=あるオプション

cacls ファイル名 !OPTION! アクセス権 
)
とやってもうまくいきません。

ちなみに
普通に
echo ファイル名 !OPTION! アクセス権
とやると取得できています。
またechoの部分をcaclsとコマンドにかえて、
あとで実行してみると問題なく動きます
497.
補足 コマンドのオプションを環境変数で指定
2005年05月20日(金) 13時41分
SH
>●DOS/Windowsのバージョン↓

>Microsoft Windows XP [Version 5.1.2600]
>(C) Copyright 1985-2001 Microsoft Corp.

>コマンドのオプションを環境変数で指定することは
>駄目なのでしょうか?

>括弧内で
>(
>set option=あるオプション

>cacls ファイル名 !OPTION! アクセス権 
>)
>とやってもうまくいきません。

>ちなみに
>普通に
>echo ファイル名 !OPTION! アクセス権
>とやると取得できています。
>またechoの部分をcaclsとコマンドにかえて、
>あとで実行してみると問題なく動きます

すみません補足ですが、実は
cacls ファイル名 !OPTION! アクセス権 >>ログファイル

という風にファイル出力していたんですが、
これが原因みたいです。
ただし、
cacls ファイル名 /C /E /G アクセス権 >>ログファイル
とやると問題ありません。
環境変数とファイル出力を同時に使うとエラーになるようです。
なにがなんだかわかりませんが、何度やっても駄目です。
バグなのでしょうか。
499.
Re2:補足 コマンドのオプションを環境変数で指定
2005年05月20日(金) 14時02分
otn
>すみません補足ですが、実は
>cacls ファイル名 !OPTION! アクセス権 >>ログファイル

>という風にファイル出力していたんですが、
>これが原因みたいです。
>ただし、
>cacls ファイル名 /C /E /G アクセス権 >>ログファイル
>とやると問題ありません。
>環境変数とファイル出力を同時に使うとエラーになるようです。
>なにがなんだかわかりませんが、何度やっても駄目です。
>バグなのでしょうか。

エラーが発生する最小限のコマンドを書いてみてください。
echo ABC>X.txt
set A=/C /E /G
cacls X.txt !A! myname:F >>LOG
だとうまく行きますが。
502.
Re3:補足 コマンドのオプションを環境変数で指定
2005年05月20日(金) 15時05分
SH
>>すみません補足ですが、実は
>>cacls ファイル名 !OPTION! アクセス権 >>ログファイル
>>
>>という風にファイル出力していたんですが、
>>これが原因みたいです。
>>ただし、
>>cacls ファイル名 /C /E /G アクセス権 >>ログファイル
>>とやると問題ありません。
>>環境変数とファイル出力を同時に使うとエラーになるようです。
>>なにがなんだかわかりませんが、何度やっても駄目です。
>>バグなのでしょうか。

>エラーが発生する最小限のコマンドを書いてみてください。
>echo ABC>X.txt
>set A=/C /E /G
>cacls X.txt !A! myname:F >>LOG
>だとうまく行きますが。

はい、実際は
echo y|cacls X.txt !A! myname:F>>LOG
のようにしております。
504.
Re4:補足 コマンドのオプションを環境変数で指定
2005年05月20日(金) 15時36分
otn
>>エラーが発生する最小限のコマンドを書いてみてください。
>>echo ABC>X.txt
>>set A=/C /E /G
>>cacls X.txt !A! myname:F >>LOG
>>だとうまく行きますが。

>はい、実際は
>echo y|cacls X.txt !A! myname:F>>LOG
>のようにしております。

こちらではエラーになりませんね(ただしWin2000)。
何度か繰り返すと、タイミングによっては、「プロセスが、存在しないパイプに書き込もうとしました。」が出ますが、これはcaclsが確認を求めずに終了した後でecho yが実行された場合ですね。

どんなエラーになりますか?
%A% に変えると出ないんですよね?
echo y>Y
cacls X.txt !A! myname:F>>LOG <Y
に変えるとどうですか?

ファイル名やユーザ名に特殊文字 ! や ^ が含まれていることは無いですよね?
509.
Re5:補足 コマンドのオプションを環境変数で指定
2005年05月20日(金) 19時06分
SH
>>>エラーが発生する最小限のコマンドを書いてみてください。
>>>echo ABC>X.txt
>>>set A=/C /E /G
>>>cacls X.txt !A! myname:F >>LOG
>>>だとうまく行きますが。
>>
>>はい、実際は
>>echo y|cacls X.txt !A! myname:F>>LOG
>>のようにしております。

>こちらではエラーになりませんね(ただしWin2000)。
>何度か繰り返すと、タイミングによっては、「プロセスが、存在しないパイプに書き込もうとしました。」が出ますが、これはcaclsが確認を求めずに終了した後でecho yが実行された場合ですね。

>どんなエラーになりますか?
>%A% に変えると出ないんですよね?
>echo y>Y
>cacls X.txt !A! myname:F>>LOG <Y
>に変えるとどうですか?

>ファイル名やユーザ名に特殊文字 ! や ^ が含まれていることは無いですよね?


>%A% に変えると出ないんですよね?
いえ、ログファイルをなしにすると正常になります。

cacls X.txt !A! myname:F
だと動いて
cacls X.txt !A! myname:F>>LOG

だと駄目です。
理由がわかりません。

あと
cacls X.txt /C /T /G myname:F>>LOG
のように、オプションをハードコーディングすると
正常に動きます。
511.
Re6:補足 コマンドのオプションを環境変数で指定
2005年05月20日(金) 20時05分
otn
>cacls X.txt !A! myname:F
>だと動いて
>cacls X.txt !A! myname:F>>LOG

>だと駄目です。
>理由がわかりません。

echo Y| は有っても無くても関係なかったと言うことですね。
で、動かないというのは、具体的にどんな現象なんですか?

動かないケースのコマンドラインを一字一句そのまま書いてください。
(英字は多少別の英字に変えても良いですが、記号は一切変えず)
そのケースで、!A! を %A% に変えるとどうなりますか?
 
 


カテゴリー「リダイレクト(> <)、パイプ( | )、その他の特殊記号」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2005年05月20日 02:52に投稿されたエントリーのページです。

ひとつ前の投稿は「FINDSTRの実行結果によって条件分岐させたい」です。

次の投稿は「【情報】CMD.EXEの構文解析」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート