Powershell管道文件内容到应用程序而不在内存中加载文件

cbe*_*ski 11 mysql powershell

随着cmd我跑mysql -uroot database < filename.sql导入一个数据库转储(从文件中读取并传递到MySQL).但是,<在powershell中是"保留".

相反,在powershell我使用get-content filename.sql | mysql -uroot database.需要注意的是,powershell 在将其传递给MySQL之前会filename.sql 完全入内存,而对于大型数据库转储,它只会耗尽内存.

显然,我可以通过执行此操作,cmd但是我有一些PowerShell脚本可以自动执行各种任务,我不希望必须批量重写它们.在这种特殊情况下,filename.sql是自动启动时通过PS参数指定的变量.

那么我该如何解决这个内存限制呢?有没有其他方法可以直接将文件内容传递给MySQL?

Ton*_*ony 16

你可以试试

mysql -uroot -pYourPassword -e "source C:\temp\filename.SQL"
Run Code Online (Sandbox Code Playgroud)

要么

mysql --user=root --password=YourPassword --execute="source C:\temp\filename.SQL"
Run Code Online (Sandbox Code Playgroud)

如果事情开始变得复杂,你可能应该编写一个执行复杂任务的C​​#Console应用程序.