2009-05-15 3 views
2

をコピーしようとしたとき、私は、ユーザーがそれは単純なXMLファイルをコピーします実行していることを実行する必要がある。このバッチを持って否定しました。しかし、Windows 2000/XPではすべて正常に動作します。ただし、Windows Vista上で、私はエラー「アクセスが」拒否されましたを取得します。アクセスは、ファイルのWindows Vista

私は試してみて、ちょうどVistaでWindowsエクスプローラを使用してファイルをコピーする場合でも、私は同じエラーを取得します。

私が作るために何かできることはありますこのファイルのコピー。私は、このファイルのコピーを可能にするために、私のBATファイルに余分なコードを追加する必要がありますか?

感謝します。

@ECHO OFF 
REM copy config file to the windows/system32 
copy config.xml c:\windows\system32\DataLinks.xml 
+0

C#関連のものは見当たりませんでしたので、私はタグを取り除き、投稿に言及する自由をとりました。私が間違っているなら、それを戻してください。 –

答えて

5

私はあなたが窓を変更しようとしているからだと推測しています\ system32。Vista、7および今後のバージョンのWindowsでは昇格されたprivilが必要ですsystem32を変更するためにeges。

はあなたが本当にSYSTEM32にこのファイルを配置する必要がありますか?それが任意の場所であれば、なぜユーザーのAppDataディレクトリ(%AppData%\ DataLinks.xml)にポップしないのですか?

のAppDataは、ユーザーのドキュメントと設定またはUsersフォルダ(バージョンによって異なります)に隠しWindowsの2000年以来の周りされています標準のディレクトリです。これは、ユーザーが取得できるようにする必要がありますが、ほとんど唯一のあなたのコードで使用されようとしているアプリケーション設定のために意図され、隠されたが、ユーザーが編集可能なフォルダです。

+0

こんにちは、はい。私はそれが良い考えだと思う。しかし、Windows XPには同じフォルダがありますか?これはxp/vistaと将来のWindows版の両方にインストールされるでしょうか? – ant2009

+0

彼は言った "..それはWindows 2000以来の周り.." – xian

+0

私は応答として、それを編集しました。 – Merus

2
  1. はあなたがすべてでは%windir%をにあなたの設定データをコピーするべきではありません
  2. % windir%\ system32をコピーするに上昇PRIVSを必要としています。 Windows用です%AppData%を使用します。
  3. あなたは、%Windir%はにコピー%windir%変数を使用し、パスCハードコーディングしていないならば:\ Windowsの
0

JS前髪は右です。 %windir%変数を使用します。ほとんどの場合、それは何の誤りも与えません。

例:

@ECHO OFF 
REM copy config file to the windows/system32 
copy config.xml %windir%\system32\DataLinks.xml 

しかし、あなたでしょうが?他のものに入れてください。 AppDataのようにすでに言われたこと:

@ECHO OFF 
REM copy config file to the windows/system32 
copy config.xml %appdata%\DataLinks.xml 
関連する問題