- @echo off
- setlocal enabledelayedexpansion
-
- rem 设置 USB 设备的盘符,需要根据实际情况修改
- set "usbDrive=F:"
-
- rem 设置测试文件的大小(单位:MB)
- set "testFileSize=100"
-
- rem 设置测试文件的名称
- set "testFileName=testfile.dat"
-
- rem 生成测试文件
- echo Generating test file...
- fsutil file createnew %testFileName% %testFileSize%000000
-
- rem 写入测试
- echo Starting write test...
- for /f "usebackq delims=" %%a in (`powershell -command "[Math]::Round((Get-Date).ToFileTimeUtc() / 10000, 0)"`) do set "startTime=%%a"
- robocopy . %usbDrive% %testFileName% /njh /njs
- for /f "usebackq delims=" %%a in (`powershell -command "[Math]::Round((Get-Date).ToFileTimeUtc() / 10000, 0)"`) do set "endTime=%%a"
-
- set /a writeTime=endTime - startTime
- if !writeTime! equ 0 (
- echo Write operation was too fast to measure accurately.
- ) else (
- set /a writeRate=(%testFileSize% * 1000 * 1000) / writeTime
- echo Write rate: !writeRate! KB/s
- )
-
- rem 读取测试
- echo Starting read test...
- for /f "usebackq delims=" %%a in (`powershell -command "[Math]::Round((Get-Date).ToFileTimeUtc() / 10000, 0)"`) do set "startTime=%%a"
- robocopy %usbDrive% . %testFileName% /njh /njs
- for /f "usebackq delims=" %%a in (`powershell -command "[Math]::Round((Get-Date).ToFileTimeUtc() / 10000, 0)"`) do set "endTime=%%a"
-
- set /a readTime=endTime - startTime
- if !readTime! equ 0 (
- echo Read operation was too fast to measure accurately.
- ) else (
- set /a readRate=(%testFileSize% * 1000 * 1000) / readTime
- echo Read rate: !readRate! KB/s
- )
-
- rem 清理测试文件
- del %testFileName%
- del %usbDrive%\%testFileName%
-
- echo Test completed.
复制代码 用豆包自动生成了一个bat,但是运行到计算时间的时候报错,就是下面这段- set /a writeTime=endTime - startTime
- if !writeTime! equ 0 (
- echo Write operation was too fast to measure accurately.
- ) else (
- set /a writeRate=(%testFileSize% * 1000 * 1000) / writeTime
- echo Write rate: !writeRate! KB/s
- )
复制代码 大佬帮我看看哪里错了 |