abb*_*ood 2 mysql windows powershell escaping
我正在按照mysql 站点上的说明在 Windows 计算机上重置 mysql 服务器的密码。
逐字复制命令:
C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe"
--defaults-file="C:\\Program Files\\MySQL\\MySQL Server 5.0\\my.ini"
--init-file=C:\\mysql-init.txt
Run Code Online (Sandbox Code Playgroud)
给我这个错误(缩写):
Unexpected token 'defaults-file="C:\Program Files\MySql\Mysql Server 5.0\my.ini"'
in expression or statement.
The '--' operator works only on variables or on properties.
+ CategoryInfo :ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId :UnexpectedToken
Run Code Online (Sandbox Code Playgroud)
我环顾四周,发现了这个建议:
尝试这个:
$cmd= {cmd /c 'C:\Program Files\PostgreSQL\8.3\bin\pg_dump.exe "--encoding=UTF8 --verbose --create --username=postgres -- file=C:\db\Wednesday .pg 数据库"'}
&$cmd
-- 是 Powershell 减量运算符。为了使其成为“mundate”,需要将其括在单引号中以抑制将其解析为运算符。您也可以用反引号转义所有连字符,但这会变得非常难看。
我尝试遵循该格式..即
$cmd = {cmd /c 'C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe
"--defaults-file="C:\\Program Files\\MySQL\\MySQL Server 5.0\\my.ini
--init-file=C:\\mysql-init.txt"'}
&$cmd
Run Code Online (Sandbox Code Playgroud)
但后来我得到了这个错误:
'C:\Program' is not recognised as an internal or external command
Run Code Online (Sandbox Code Playgroud)
我还尝试过进行反勾转义:
C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe"
`-`-defaults-file="C:\\Program Files\\MySQL\\MySQL Server 5.0\\my.ini"
`-`-init-file=C:\\mysql-init.txt
Run Code Online (Sandbox Code Playgroud)
但也出现错误(缩写):
unexpected token '`-`-defaults-file.. ' in expression or statement
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
对于 Powershell 来说,用于停止参数处理的双破折号确实是一个可悲的选择。我尝试通过 Invoke-Command 让它工作,但下面的示例效果最好
&"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe" '--defaults-file=""C:\Program Files\MySQL\MySQL Server 5.0\my.ini""' '--init-file="C:\mysql-init.txt"'
Run Code Online (Sandbox Code Playgroud)
双引号之间的可执行文件。
每个参数位于单引号之间,参数值位于双引号之间(或双双引号以使路径中的空格起作用)
| 归档时间: |
|
| 查看次数: |
3437 次 |
| 最近记录: |