2016-08-16 2 views
-1

MySQL 설치 프로그램에서 my.ini 파일을 변경해야합니다. max_connections를 늘리고 싶습니다. 따라서 기본적으로 파일의 텍스트 파일을 대체하고 저장하는 일부 powershell 명령을 호출하는 .bat 파일이 있습니다.파일의 텍스트를 변경하는 Windows PowerShell 명령

필자는 텍스트를 변경하기 위해 powershell 명령을 실행할 .bat 파일을 실행하여이 작업을 시도하고 있습니다. 지금까지 큰 골치 거리였습니다. 몇 가지 솔루션을 시도하고 텍스트를 대체 할 수있는 권한을 부여하지 않거나 파이프 된 명령에서 개체를 사용할 수 없다고 알려줍니다.

.bat 파일을 사용하지 않고 admin powershell에서 작동하도록 관리했지만 비 관리자 및 .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' -\"" 

를 사용하여이 변화를 시도했지만 나는 다음과 같은 오류를 - 동사에서 runas

PowerShell을 -noexit -Command "시작 - 프로세스 PowerShell을 얻을 - ArgumentList \ "- NoExit -Command (Get-Content 'C : \ ProgramData \ MySQL \ MySQL 서버 5.7 \ my.ini') | ForEach-Object {{$ _ -replace \ ""max_connections = [0-9] + $ \ "", \ ""max_connections = 10000 \ ""} |'ForEach-Object'가 내부 또는 외부 명령으로 인식되지 않습니다. 작동 가능한 프로그램 또는 배치 파일.

이 문제와 관련하여 여러 가지 스택 오버플로 문제를 살펴 봤지만 제대로 작동하지 않는 것 같습니다.

해결책을 얻는 쉬운 방법이 있다면 제안을 할 수 있습니다.

업데이트 : 복사 솔루션을 붙여 넣거나 다른 프로그램이 내가 명령에 이상한 대괄호를 얻을이 powershell.exe에 전달받을 때

, 왜 이런 일이 무엇입니까? 당신의 구문 권리를 얻는해야 배치 파일에서 할 수 있다는

enter image description here

+0

배치 파일에서 수행 할 수 있다는 것은 구문을 올바르게 이해하고 있어야합니다. 이것을 시도해보십시오 :'PowerShell -NoExit -Command {(Get-Content 'C : \ ProgramData \ MySQL \ MySQL 서버 5.7 \ my.ini ') | ForEach-Object {$ _ -replace "max_connections = [0-9] + $", "max_connections = 10000"} | 설정 내용 'C : \ ProgramData \ MySQL \ MySQL 서버 5.7 \ my.ini'}'. 관리자 권한으로 실행하지 않으려면 파일의 보안 탭을 확인하고 Administrators 그룹의 사용자뿐만 아니라 사용자 계정에 권한이 있는지 확인하십시오. – TheMadTechnician

+0

'ForEach-Object'가 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않는다는 오류가 계속 나타납니다. ' – FillyPajo

+0

그냥 배치 파일 대신 PowerShell에서 실행하는 것이 어떻습니까? – TheMadTechnician

답변

0

(내가하여 powershell.exe를 호출 innoscript 사용). , 관리자에서 실행 파일에 대한 보안 탭을 확인하고 사용자 계정이 그에 대한 권한이 있는지 확인하지 않아도에 관해서는

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'} 

을하고, 관리자 그룹의 단지 사람들이보십시오.

관련 문제