PATHを設定してCommand.comを実行したいのですが、
CreateProcessでの環境変数の設定の仕方がわかりません
char* env = "PATH=c:\\data";
CreateProcess(NULL,"command.com /k path ", NULL, NULL, FALSE, 0, env, NULL, &si, &pi);
このようにしてみたところDos窓が起動しますが、
表示されるPATHはデフォルトのままです。
環境は VC++6.0 MFC です。
どうか宜しくお願いします。
No.2ベストアンサー
- 回答日時:
Windows XP で cmd.exe に変更して実行しましたが、PATH=c:\data と表示されます。
OS に関係なく、command.com は特殊なプログラムなのかもしれないですね。
--------------------------------
char *env = "PATH=c:\\data\0";
CreateProcess(NULL, "cmd.exe /k path ", NULL, NULL, FALSE, 0, env, NULL, &si, &pi);
がーん
そうですか、command.comが悪かったなんて
それじゃ、ShellExecuteでは、Win95系で環境変数の設定を行うのはムリっぽいですね。(泣)
わかりましたちょっと他の方法を探ってみます。
バッチファイルを使うくらいしか思いつかないのですが・・・。
もし、他にPathを効かせてコマンドを実行する方法がありましたらアドバイスをいただけると嬉しいです。
お忙しいところ、わざわざ試していただき、本当にありがとうございました。
No.1
- 回答日時:
danner です。
MSDNを調べると
「環境ブロックの構成は次のようになります。
name1=value1<NULL>name2=value2<NULL>……nameN=valueN<NULL><NULL>」
となっています。
したがって、環境設定変数の最後はダブルヌルにしないといけないのでは?
>char* env="PATH=c:\\data";
ではなく、例えば
char env[1024];
strcpy(env, "PATH=c:\\data");
env[strlen(env)+1]=NULL;
実際には確かめていませんがどうでしょうか?
この回答への補足
早速の回答ありがとうございます。
さっそく試してみたのですが、やはりうまくいきません。
説明はとてもよくわかりました。
これでいけると思ったんですけど・・・。
なにか根本的に間違ってるのでしょうか?
一応
C:\Dataというフォルダが無いとかいうオチはありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 pathが通らない 2 2023/03/27 11:28
- その他(プログラミング・Web制作) Pythonの作業環境・作業フォルダの迅速な設定・指定方法 3 2022/04/01 07:55
- UNIX・Linux WSL+Dockerでpython実行環境構築について 3 2023/05/05 17:03
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/10/26 17:14
- Excel(エクセル) Excelでnullになるような式のセルをマクロで空白行と認識させるにはどうすればいいですか? 3 2023/03/13 13:42
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- PHP PHPSpreadsheetによる書き出し時のページネーション方法について 1 2023/03/20 10:35
- PHP 書籍よりも より良い htmlspecialchars の変更を 1 2022/04/18 02:28
- C言語・C++・C# C++の標準入力の書き方 6 2023/02/23 23:53
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ポインター引数の関数でコンパ...
-
stable diffusionのエラー
-
int型(2バイト)データの分割
-
【Excel VBA】10進数を2進数に...
-
C#でのswitch文
-
データの値の近いものをグルー...
-
printfの%eで指数部分の桁数を...
-
C言語 平均を求めるプログラム
-
pythonでDBのカラム名で取得し...
-
10Mバイトて文字数に すると何...
-
ビットスワップとバイトスワッ...
-
Rstudioによるテキストマイニン...
-
UTF-8で5~6バイトになる文字コ...
-
Excel 1セル当りの文字数が2...
-
utf-8でメールを送信すると件名...
-
char str[256]の256の意味は?
-
サブドメインでのクッキー認証
-
応募フォームなどの住所欄で最...
-
ピクセル,dpiから容量(バイト...
-
クッキーのデータ取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ポインター引数の関数でコンパ...
-
stable diffusionのエラー
-
printfの%eで指数部分の桁数を...
-
エクセルVBA:日付データの変換...
-
int型(2バイト)データの分割
-
c言語の多次元配列で1から100ま...
-
【Excel VBA】10進数を2進数に...
-
C#でのswitch文
-
途中経過も表示するプログラム
-
CreateProcessでの環境変数の設...
-
pythonでDBのカラム名で取得し...
-
C言語についてです! 同じ年の...
-
linuxのシェルでファイル名に先...
-
c言語 配列から数字だけをint型...
-
matlabのソースコードをpython...
-
c言語での wavファイルの編集(...
-
ビットデータのチェック方法
-
10個の実数に対する降順ソート...
-
python 気象データの取得
-
(C言語・配列)date[i]の分散...
おすすめ情報