2016-08-16 12 views
-1

MySQLセットアップでmy.iniファイルを変更する必要があります。私はmax_connectionsを増やしたいと思います。基本的には、ファイル内のテキストファイルを置き換えて保存するpowershellコマンドを呼び出す.batファイルがあります。ファイル内のテキストを変更するWindows PowerShellコマンド

私はこれを行うには、テキストを変更するためにpowershellコマンドを実行する.batファイルを実行しようとしていますが、これまでは大きな頭痛でした。私はいくつかのソリューションを試して、それは私にテキストを置き換えるためのアクセス許可を与えていないか、オブジェクトがパイプコマンドで使用することができないことを私に伝えます。

管理者用のPowerShellで.batファイルを使用せずに動作させることができましたが、非管理者と.batファイルではできません。

私は

PowerShell -NoExit -Command "(Get-Content 'C:\ProgramData\MySQL\MySQL Server 5.7\my.ini') | ForEach-Object { $_ -replace \"max_connections=[0-9]+$\", \"max_connections=10000\" } | Set-Content 'C:\ProgramData\MySQL\MySQL Server 5.7\my.ini' -" 

セット内容次のエラーを取得するの下に、これを試してみました:コマンドがない テイクをしているため、入力オブジェクトがいずれかのコマンドのいずれかのパラメータにバインドすることはできませんパイプライン入力、または入力とそのプロパティが、パイプライン入力を受け取るパラメータのいずれとも一致しない場合。

私はまた、管理PowerShellの呼び出し

PowerShell -NoExit -Command "Start-Process powershell -verb runas -ArgumentList \"-NoExit -Command (Get-Content 'C:\ProgramData\MySQL\MySQL Server 5.7\my.ini') | ForEach-Object {{ $_ -replace \""max_connections=[0-9]+$\"", \""max_connections=10000\"" } | Set-Content 'C:\ProgramData\MySQL\MySQL Server 5.7\my.ini' -\"" 

を使用して、このバリエーションを試してみましたが、私は次のエラー

PowerShellの-noexit - コマンド「スタート・プロセスのPowerShell -verbのrunasコマンドを取得します - ArgumentList \ " - NoExit - コマンド(Get-Content 'C:\ ProgramData \ MySQL \ MySQL Server 5.7 \ my.ini')| ForEach-Object {{$ _ -replace \ "" max_connections = [0-9] + $ \ ""、\ "" max_connections = 10000 \ ""} | 'ForEach-Object'は、内部または外部のコマンドとして認識されません。 操作可能なプログラムまたはバッチファイルです。

私はこれに関するいくつかのスタックオーバーフローの質問を見ましたが、私はそれを動作させるように見えることはできません。

解決策を簡単に実行できる方法があれば、私は提案することができます。

UPDATE:私はコピーしてソリューションを貼り付けたり、別のプログラムが、私は、コマンドでこれらの奇妙な角括弧を取得したpowershell.exeためにそれを渡すために取得するとき

、なぜこれが起こるのでしょうか?

enter image description here

+0

バッチファイルで行うことができるのは、構文が正しいことだけです。これを試してください: 'PowerShell -NoExit -Command {(Get-Content 'C:\ ProgramData \ MySQL \ MySQL Server 5.7 \ my。| ForEach-Object {$ _ -replace "max_connections = [0-9] + $"、 "max_connections = 10000"} |セットコンテンツ 'C:¥ProgramData¥MySQL¥MySQL Server 5.7¥my.ini'} '。管理者で実行する必要はありませんが、ファイルのセキュリティタブをチェックして、Administratorsグループのユーザーだけでなく、ユーザーアカウントにも権限があることを確認してください。 – TheMadTechnician

+0

「ForEach-Object」が内部または外部コマンド、実行可能プログラムまたはバッチファイルとして認識されないというエラーが表示されます。 – FillyPajo

+0

バッチファイルではなくPowerShellで実行するのはなぜですか? – TheMadTechnician

答えて

0

は、バッチファイルでそれを行うことができること(私はたpowershell.exeを呼び出すためにinnoscriptを使用する)は、ちょうどあなたの構文の権利を取得する必要があります。 、管理者で実行ファイルのセキュリティ]タブをチェックして、ユーザーアカウントがそれに権利を持っていることを確認する必要がない、とAdministratorsグループ内だけでなく、人々のためとして

PowerShell -NoExit -Command {(Get-Content 'C:\ProgramData\MySQ‌​L\MySQL Server 5.7\my.ini') | ForEach-Object { $_ -replace "max_connections=[0-‌​9]+$", "max_connections=100‌​00" } | Set-Content 'C:\ProgramData\MySQ‌​L\MySQL Server 5.7\my.ini'} 

:これを試してみてください。

関連する問題