読者です 読者をやめる 読者になる 読者になる

困ったー

困ったことを調べたブログ

【Windows 10】Program Files内の上書き禁止ファイルを書き換えるには?


利用しているソフトによっては、ソフトの設定を「ini」ファイルで上書きして変更しないといけない場合があります。しかし「Program Files」内のファイルで「上書き禁止」となってしまって上書きできない場合があります。

 

果たしてその対策は?

 

Program Filesで上書き禁止ファイルを書き換えるには?

使っているMySqlというソフトの設定を変更するには、「Program Files」内のMySqlのフォルダ内にある「.ini」ファイルを上書きして設定を変更するようです。

ところが実際にテキストエディタで開いて変更しようとしても、上書き禁止となってしまいます。

 

また先にファイルをコピーして、ほかのディレクトリに作成。それを上書き変更したうえで、元の場所でコピーで上書きしようとしてみたらダメでした。

 

このような場合はコマンドプロンプトなどで変更したほうがいいようです。

 

バッチファイルを作るには?

今回はバッチファイルを作ります。バッチファイルは、命令を書いたファイルを作って「test.bat」などのように拡張子「.bat」のファイルを作ります。するとあとはそのファイルを起動するだけで命令が実行できるようになります。

 

テキストエディタなどで新規ファイルを作ります。

 

今回は「XCOPY」というコマンドを使ってファイルをコピーします。

コマンドプロンプトでファイルを上書きコピーするには以下のフォーマットになります。

 

「XCOPY コピーするファイルのパス コピーされるファイルのパス /R /-Y」

 

/R /-Y」のようなのは「ファイルがあってもうわがきしてくださいね。」というコピーする際のオプション情報をあらわします。

今回、うちでの場合は以下になります。

xcopy C:\Data\my-default.ini C:\Program Files\MySQL\MySQL Server 5.7\my-default.ini /R /-Y

作ったら「test.bat」など任意の名前で保存します。

 

バッチファイルを停止するには?

作ったバッチファイル「test.bat」をダブルクリックで起動すると、処理を実行できます。

 

しかし処理が終わってすぐ終了してしまいます。

これでは、命令がうまくじっこうされているのか確認できません。

 

そこで、先ほど作ったバッチファイルを開き、命令に「PAUSE」を加えることで停止できるようになります。

xcopy C:\Data\my-default.ini C:\Program Files\MySQL\MySQL Server 5.7\my-default.ini /R /-Y

PAUSE 

 PAUSEで止めた結果、「無効なパラメータの数」というエラーが出ていました。

f:id:apicode:20161025151245p:plain

 

「無効なパラメータの数です」が出たら?

ファイルコピーをしようとするとパラメータの数が違うというエラーになる場合があります。

実際にパラメータ数が少ない場合もありますが、ファイル名に注意しましょう。

 

特にフルパス名に半角スペースなどがあるとあやういようです。

そこで、半角スペースなどが含まれるパス名を「" (ダブルクォート)」で囲むことで回避させることができます。

ファイルを開いて、半角スペースなどが含まれる後半のパス名をダブルクォートで囲みます。 

xcopy C:\Data\my-default.ini "C:\Program Files\MySQL\MySQL Server 5.7\my-default.ini" /R /-Y

PAUSE

これでファイルをまた保存しなおします。

 

 

「アクセスが拒否されました」が出たら?

今度はアクセスが拒否されましたとエラーが出ました。

アクセスが拒否されないようにするには、バッチファイルを起動するときに管理者権限で実行します。

ファイルを選択して、右クリックでメニューを表示させてから「管理者権限っで実行」を行いましょう。

f:id:apicode:20161025152126p:plain

 

これでやっとProgram Files内のファイルを上書きコピーすることができました。

このブログは、ネットや書籍上の情報、個人の体験や感想を中心にまとめたものです。 正確性を期していはいますが、間違い・誤訳等あるかもしれません。 また、当サイトの情報によって生じたいかなる損失について一切の責任を負いません。 あらかじめご了承ください。