2016-12-30 11 views
1

私は、次の.batファイルを持っている:私の.batファイルはInno Setupのから呼び出されたときの.batファイル内のコマンドが認識されないが、私は手動でbatファイルを実行すると正常に動作します

fbwfmgr /enable 
. 
. 
. 
fbwfmgr /addexclusion c: "some folder 1" 
fbwfmgr /addexclusion c: "some folder 2" 
. 
. 
. 

Filename: "{cmd}"; Parameters: "/c ""{tmp}\set_write_protection_rules.bat""";  

Iアル:

Filename: "{tmp}\set_write_protection_rules.bat"; 

私もこの試してみました:「このように私のInno Setupの中[Run]セクションから呼び出すメートル方法がメッセージを受け取る

'fbwfmgr'は、内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されません。

ダブルクリックで.batファイルを実行すると、cmdウィンドウから実行すると機能します。私はここで何が欠けていますか?

私はWindows Embedded Standard x64システムで管理者としてログインしています。

%systemroot%\system32\fbwfmgr.exe /enable 

私はa similar thread hereが見つかりました:


EDIT:(私は手動でもそれはfbwfmgr.exeの実際の場所だと見ている)問題が解決しないfbwfmgr.exeへの完全なパスを追加

OPが同じ問題を抱えていて、vbsから.batファイルを実行しているところで、そこに解決策が見つかっていないようです。

Filename: "{cmd}"; Parameters: "c/ ""fbwfmgr /enable"""; 

が、無使用:私は次の行にInno Setupのから直接fbwfmgrを呼び出して試してみた真ん中の男性をカットするためにそこの提案から。空のコンソールウィンドウを開くだけです。そこからfbwfmgrに電話しようとすると認識されません。

+2

.batファイルの最初の行に 'path'を追加しようとしましたか?私はInnoについて何も知らないが、私はそれが異なる経路設定を持っていると推測するだろう。 –

+0

'fbwfmgr'とは何ですか?それはどこから来たのですか? –

+0

fbwfmgrは、Windowsのディスク書き込み保護マネージャです。つまり、書き込み保護されているものに書き込むことを防ぎ、代わりにRAMに保存します。 CFASTカードのようなものを使用している場合に役立ちます。CFASTカードは、書き込み回数に敏感です。 – user2078171

答えて

2

システム上にC:\Windows\System32にはfbwfmgrの64ビットバージョンしかないので、それはありませんか?

32ビットアプリケーションでは、デフォルトではgets redirected to C:\Windows\SysWOW64(32ビットバージョンC:\Windows\System32)です。の32ビットバージョンがC:\Windows\SysWOW64にない場合、Inno Setupはそれを見つけることができません。

Flags: 64bitを追加すると、Inno Setupはfbwfmgrの64ビット版を見つけます。

また、コマンドインタープリタ(cmd.exe)で.exeアプリケーションを実行していることもありません。バッチファイルで

[Run] 
Filename: "fbwfmgr.exe"; Parameters: "/enable"; Flags: 64bit 

、メカニックは、もう少し複雑です。デフォルトでInno Setup(32ビットアプリケーション)は、cmd.exeという32ビットを実行し、C:\Windows\SysWOW64になります。 Flags: 64bitを追加すると、Inno Setupは、cmd.exeの64ビットを実行し、C:\Windows\System32になります。

[Run] 
Filename: "{tmp}\set_write_protection_rules.bat"; Flags: 64bit 

または64-bit install modeを使用しています。

1

おそらく、fbwfmgrのパスを指定する必要があります。

"C:\Users\JOHNDOE\SomeDir\fbwfmgr“

あなたはほぼ確実にあまりにも管理者権限を持つバッチスクリプトを実行する必要があります!私はあなたが管理者としてログインしているということを知っていますが、特に別のアプリケーションからスクリプトを実行しているときにスクリプトを実行する権限があることを確認する必要があります。(inno)

+0

これは役に立たなかった、私はこれを反映するために投稿を編集した。それは実際に働いた? – user2078171

+0

あなたのコードを更新して、それを反映させて、今試したことを正確に見ることができますか? – Compo

関連する問題