Stdin失败的即时压缩?
-
25-10-2019 - |
题
从建议的 这里, ,我正在尝试从 sqlcmd
至 7zip
因此,在倾倒200GB数据库时可以节省磁盘空间。我尝试了以下内容:
> sqlcmd -S <DBNAME> -Q "SELECT * FROM ..." | .\7za.exe a -si <FILENAME>
即使我离开系统一整天,这似乎也无法正常工作。但是,以下工作:
> sqlcmd -S <DBNAME> -Q "SELECT TOP 100 * FROM ..." | .\7za.exe a -si <FILENAME>
甚至这个:
> sqlcmd -S <DBNAME> -Q "SELECT * FROM ..."
当我删除 pipe
符号,我可以看到结果,甚至可以在7个小时内将其重定向到完成后的文件。
我不确定管道大量输出的情况如何,但是直到这一点,我能理解的是,7zip似乎正在等待在创建存档文件之前消耗整体输入(因为我真的没有看到一个创建要开始的文件),因此我不确定它是否实际执行即时压缩。所以我尝试了gzip,这是我的经验:
> echo "Test" | .\gzip.exe > test.gz
> .\gzip.exe test.gz
gzip: test.gz: not in gzip format
我不确定我会以正确的方式这样做。有什么建议么?
解决方案
好家伙!一直都是Powershell!我不知道为什么至少在Gzip中会发生这种情况。 GZIP一直抱怨输入不采用GZIP格式。我切换到普通命令提示符,一切都开始工作。
我以前确实观察到了。好像 |
和 >
在PowerShell和命令提示符中具有略有不同的功能。不确定到底是什么,但是如果有人知道它,请在这里添加。
不隶属于 StackOverflow