Powershell保持重置为默认临时文件夹

时间:2017-09-11 00:04:57

标签: sql-server powershell temp

我正在运行从数据库中提取数据的PowerShell脚本。但是,我在默认的%Appdata%Local/Temp/文件夹上没有足够的空间。我知道这是因为我收到错误:

  

使用“0”参数调用“ExecuteNonQuery”的异常:“不正确   表的密钥文件   'C:\的Windows \ SERVIC〜2 \ NETWOR〜1 \应用程序数据\本地\温度#sql7ec_3_3.MYI';尝试   修复它“

要解决此问题,我正在尝试更改PowerShell的Temp文件夹。我把它改成了:

TMP   D:\Temp
Temp  D:\Temp

另外,我在脚本开头运行此代码:

# Set Environmental Variables
[Environment]::SetEnvironmentVariable("TEMP", "D:\Temp\")
[Environment]::SetEnvironmentVariable("Temp", "D:\Temp\")
[Environment]::SetEnvironmentVariable("TMP", "D:\Temp\")

# Navigate to these temp folders
$TempDir = [System.IO.Path]::GetTempPath()
cd $TempDir # This actually returns 'D:\Temp\'

但是,当脚本运行时,我仍然会收到错误消息:

  

使用“0”参数调用“ExecuteNonQuery”的异常:“不正确   表的密钥文件   'C:\的Windows \ SERVIC〜2 \ NETWOR〜1 \应用程序数据\本地\温度#sql7ec_3_3.MYI';尝试   修复它“

有关为什么默认为%Appdata%文件夹以及如何更改它的任何建议?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,它与环境变量有关。我正确地更改了PowerShell的TEMP环境,但是,因为我调用了数据库,所以DB正在进行实际计算并使用与PowerShell分开的自己的TEMP文件夹。当我更改MySQL数据库的TEMP文件位置时,它工作得很好。