我必须为测试场景编写一个bat脚本,由于磁盘已满,我们测试的软件无法写入文件.测试脚本必须是自动化的,以便我们可以在夜间测试中运行它.测试脚本也必须在不同的计算机上运行,因此在这种情况下安装像虚拟机这样的软件不是最好的解决方案.
如何在Windows环境中模拟该错误?
您可以尝试写入完整的软盘.
编辑:
根据您编辑的问题,您可以设置没有磁盘空间配额的网络共享并写入.无论登录用户或计算机如何,都将生成错误.
对于Windows XP或更高版本:
此命令可以获取c:\驱动器的可用空间量:
for /f "usebackq tokens=1-5" %%A in (`dir c:\ ^| find "bytes free"`) do ( set FREE_SPACE=%%C )
根据需要将c:\替换为您的驱动器.
然后您可以从这个值中腾出一些空间,这样您就有了一点空间:
set /a FREE_SPACE=FREE_SPACE-1024
或者你想保持自由的空间.
您可以使用该fsutil
命令创建文件以填充磁盘上的可用空间:
fsutil file createnew c:\spacehog.dat %FREE_SPACE%
运行测试,写入驱动器.写入1024字节左右后,您应该用完空间.
下载并安装TrueCrypt.然后,您可以创建任何大小的虚拟分区(几兆字节),安装它,然后用几个文档填充它.
它可能看起来有点多,但我能想到的一件事是使用虚拟机,并将其虚拟磁盘设置得足够大以适应操作系统.填充一些垃圾文件,将其翻到边缘,然后运行程序.
最佳选择:微软的消费计划
原因:
它测试系统磁盘(与单独的驱动器相比)
它很快 - 运行程序立即填充磁盘,不再需要时停止
这很简单 - 不创建和删除文件.没有额外的测试分区.需要安装,但之后可以使用简单的命令.
它是可编写脚本的
脚步:
安装Windows Server 2003资源工具包工具(在Windows 7上正常工作)
cd "%ProgramFiles(x86)%\Windows Resource Kits\Tools"
(或者安装时)
consume.exe -disk-space
命令输出:
C:\Program Files (x86)\Windows Resource Kits\Tools>consume.exe Universal Resource Consumer - Just an innocent stress program, v 0.1.0 Copyright (c) 1998, 1999, Microsoft Corporation consume RESOURCE [-time SECONDS] RESOURCE can be one of the following: -physical-memory -page-file -disk-space -cpu-time -kernel-pool C:\Program Files (x86)\Windows Resource Kits\Tools>consume.exe -disk-space Consume: Message: Total disk space: 96049 Mb Consume: Message: Free disk space: 14705 Mb Consume: Message: Free per user space: 14705 Mb Consume: Message: Attempting to use: 14705 Mb Consume: Message: Reattempting to use: 14705 Mb Consume: Message: Sleeping ...
其他选择:
Windows 7具有虚拟硬盘驱动器功能.基本上执行以下操作:计算机管理>磁盘管理>操作菜单>创建VHD>右键单击磁盘并初始化>右键单击
使用shell命令或Dummy File Generator程序生成大文件(应该是即时的)直到磁盘已满.另一个原则:SpaceHog.
创建一个辅助分区,用垃圾填充它,然后在那里运行你的程序.