我正在尝试使用 powershell 脚本通过 JetComp.exe 压缩 MS-Access 数据库。
以下是操作步骤:
# 4. Run JetComp
LogWrite("Begin: Running JetComp")
.\JETCOMP.EXE -src: $srcDB -dest: $dstDB | Out-Null #Run this command and wait for it to finish...
IfErrorExit("Error Compacting Database")
LogWrite("End: Running JetComp")
JETCOMP.EXE 程序似乎在实际完成之前很久就完成了,并且 $dstDB 最终比压缩后的大小还要小。最初 ($srcDB) 大约为 1.8 GB,到命令完成时,它大约为 300,000 kb(约 0.29 gb),这与 1.8 gb 相差甚远,手动压缩后最终约为 1.6 gb。
powershell 脚本中是否存在我不知道的某种超时?
PS,我知道,当手动运行 JETCOMP.EXE 时,系统通常会将其检测为“没有响应”,即使它实际上正在完成工作,等待足够长的时间才能完成。
答案1
该数字可疑地接近 150MB 远程 Powershell 内存限制的 2 倍。如果这确实是您的问题,则可能是 JETCOMP 没有获得足够的 RAM 来执行其需要执行的操作,并且正在悄悄失败。如果您通过 remote-PS 运行此操作,则可以按如下方式检查限制:
Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB
设置方法如下:
Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 1024