![Sdelete 语法错误?](https://linux22.com/image/1433846/Sdelete%20%E8%AF%AD%E6%B3%95%E9%94%99%E8%AF%AF%EF%BC%9F.png)
有人知道我为什么不能跑步吗删除删除驱动器 C 上的可用磁盘空间?在驱动器 D 上有效。
我已经尝试了 1.61 和 1.51 两个版本,并且都给出了相同的结果:
SDelete - Secure Delete v1.51
Copyright (C) 1999-2005 Mark Russinovich
Sysinternals - www.sysinternals.com
SDelete is set for 1 pass.
Cleaning free space on D:: 2%
当我尝试在驱动器 C: 上运行完全相同的命令时,发生了以下情况:
SDelete - Secure Delete v1.51
Copyright (C) 1999-2005 Mark Russinovich
Sysinternals - www.sysinternals.com
SDelete is set for 1 pass.
Cleaning free space on C:: 0%Could not create free-space cleanup file:
The filename, directory name or volume label syntax is incorrect.
我知道密码器,但我想让 sDelete 正常工作。
答案1
假设您已经以管理员身份运行该程序(就像我收到此消息时一样)。
如果你看一下 sdelete 的源代码(我在这里找到了),您可以看到它正在尝试创建一个临时文件,以用于归零过程。
_stprintf( tempFileName, _T("%sSDELTEMP"), DrivePath );
hTempFile = CreateFile( tempFileName, GENERIC_WRITE,
0, NULL, CREATE_NEW,
FILE_FLAG_NO_BUFFERING|FILE_FLAG_SEQUENTIAL_SCAN|
FILE_FLAG_DELETE_ON_CLOSE|FILE_ATTRIBUTE_HIDDEN, NULL );
if( hTempFile == INVALID_HANDLE_VALUE ) {
_tprintf( _T("Could not create free-space cleanup file: "));
PrintWin32Error( GetLastError());
return FALSE;
}
就我而言,TEMP 环境变量设置为“C:\Users\Username\AppData\Local\Temp\1”,并且该目录不存在。
要检查 TEMP 的环境变量,请打开 CMD 提示符并输入设定温度。这将打印出该环境变量的值。
就我而言,我正在准备将操作系统作为黄金映像模板。我刚刚清理了 Temp 文件夹,准备将 C: 驱动器清零并重新精简。我重新创建了丢失的目录,一切按预期运行。
答案2
可以通过sdelete
以管理员身份运行(或启动命令提示符)来解决此问题。不要双击命令提示符图标 (cmd.exe),而是右键单击它并选择“以管理员身份运行”。
答案3
错误消息可能会令人困惑。对我来说,这是因为临时目录不存在...
创建目录 %temp%
成功了