中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
作者:
标题: 求助,如何获取磁盘容量 上一主题 | 下一主题
beyond18wu
初级用户





积分 22
发帖 9
注册 2008-2-21
状态 离线
『楼 主』:  求助,如何获取磁盘容量

用批处理写了个工具,对U盘拷贝文件(写满磁盘)然后比对文件,验证拷进去的资料是否正确。现在问题是不能自动判断U盘的容量,就不知道要写满U盘的话要拷多大的文件进去,现在只能固定死测试512M的,另外不同电脑插入U盘后显示的盘符也不一样,所以我做了很多个批处理文件,每个对应处理一个盘符。 我现在需要解决上面的问题,就是自动获取移动磁盘盘符和容量,然后赋值给2个变量,再去做相应处理,请高手帮忙


2008-2-21 16:56
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 2 楼』:  

楼主是不是换了个马甲继续提问的,上次同样问题注册下,发了求助留下163邮箱地址就不管了(意思让人送代码上门) 只是我也找不到该贴了




2008-2-21 18:53
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 3 楼』:  

这个好象置顶帖里有了 搜索下吧


2008-2-21 19:01
查看资料  发短消息  网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 4 楼』:  判断U盘可用大小,并进行文件写入测试

确定了一下那贴应该不是楼主发的,再说这段代码应用很有价值的,回复你一下了! 最后希望楼主改下标题,以便方便以后搜索
@echo off
fsutil >nul 2>nul
if "%errorlevel%"=="1"    echo 非管理员身份运行&ping/n 5 127.1>nul&exit
if "%errorlevel%"=="9009" echo 运行环境必须是 Windows XP Professional 以上系统&ping/n 5 127.1>nul&exit
for /f "skip=2 tokens=2,3 delims=," %%i in ('WMIC LogicalDisk Where "DriveType=2 and SupportsDiskQuotas=FALSE" Get DeviceID^,FreeSpace /format:csv 2^>nul') do call :xxx %%i %%j
if not defined freesize echo 未找到可移动磁盘
pause&exit

:xxx
set freesize=%2
if not defined freesize goto:eof
if exist "%1\test.txt" del /q "%1\test.txt"
echo 正在写入%freesize%字节大小的测试文件到%~1盘...
fsutil file createnew "%1\test.txt" %freesize% >nul&&echo %1 盘文件拷贝测试成功!||echo %1 盘文件拷贝测试失败
del "%1\test.txt" 2>nul
echo.
goto:eof
该代码希望大家能收藏备用,它的价值在于能判断U盘厂商是否在flash芯片上动了手脚(奸商行为能将U盘容量加倍)去电脑城买U盘时带上这个代码肯定不让你吃亏! [ Last edited by fastslz on 2008-2-22 at 04:48 PM ]


   此帖被 +20 点积分         点击查看详情   
评分人:【 zh159 分数: +20  时间:2008-2-22 10:29




2008-2-21 20:33
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
chenai79921
初级用户





积分 120
发帖 48
注册 2007-12-1
状态 离线
『第 5 楼』:  

高手啊,,


2008-2-21 20:41
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
xmi
初级用户





积分 125
发帖 56
注册 2008-2-20
状态 离线
『第 6 楼』:  

Originally posted by fastslz at 2008-2-21 08:33 PM: 确定了一下那贴应该不是楼主发的,再说这段代码应用很有价值的,回复你一下了! 最后希望楼主改下标题,以便方便以后搜索 [code]@echo off for /f & ...
不行, 我試過以上coding, 但都是失敗, 如下?? Q:\Documents\>rem 獲取磁盤容量 正在寫入字節大小的測試文件到Q:盤... 盤文件拷貝測試失敗 請按任意鍵繼續 . . .


2008-2-21 20:54
查看资料  发短消息  网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 7 楼』:  

Originally posted by xmi at 2008-2-21 20:54: 不行, 我試過以上coding, 但都是失敗, 如下?? Q:\Documents\>rem 獲取磁盤容量 正在寫入字節大小的測試文件到Q:盤... 盤文件拷貝測試失敗 請按任意鍵繼續 . . .
你是繁体版系统?




2008-2-21 21:22
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
xmi
初级用户





积分 125
发帖 56
注册 2008-2-20
状态 离线
『第 8 楼』:  

是呀!


2008-2-21 22:15
查看资料  发短消息  网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 9 楼』:  

dir/-c "%~1\"^|find "可用字节" 是简体叫它怎么find呀
C:\Documents and Settings\FastSLZ>dir /-c 驱动器 C 中的卷是 WINXP 卷的序列号是 4C4E-A0AB C:\Documents and Settings\FastSLZ 的目录 2008-02-12 20:40 <DIR> . 2008-02-12 20:40 <DIR> .. 2007-10-06 02:41 <DIR> Contacts 2007-09-26 22:57 <DIR> Favorites 2008-02-12 21:05 <DIR> Phone Browser 2007-09-27 00:25 <DIR> WINDOWS 2007-09-27 13:59 <DIR> 「开始」菜单 2008-02-21 10:59 <DIR> 桌面 0 个文件 0 字节 8 个目录 1561735168 可用字节 C:\Documents and Settings\FastSLZ>
把你的贴出来




2008-2-21 22:22
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
xmi
初级用户





积分 125
发帖 56
注册 2008-2-20
状态 离线
『第 10 楼』:  

rem 獲取磁盤容量 @echo off for /f "skip=1 delims= " %%a in ('"Wmic LogicalDisk Where DriveType="2" Get DeviceID|find /v "N:""') do call :xxx "%%a" pause :xxx if "%~1"=="" goto:eof if exist "%~1\test.txt" del /q "%~1\test.txt" for /f "tokens=3" %%b in ('dir/-c "%~1\"^|find "可用字節"') do set freesize=%%b echo 正在寫入%freesize%字節大小的測試文件到%~1盤... fsutil file createnew "%~1\test.txt" %freesize% >nul&&echo %~1 盤文件拷貝測試成功!||echo 盤文件拷貝測試失敗 del "%~1\test.txt" 2>nul echo. goto:eof 以你在4樓的code做測驗...以上是了.


2008-2-22 00:19
查看资料  发短消息  网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 11 楼』:  

晕繁体语法不一样的,不的简单把"可用字节"改成"可用字節" 执行命令 dir /-c 将9楼的绿色文字部分贴出来




2008-2-22 00:39
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
xmi
初级用户





积分 125
发帖 56
注册 2008-2-20
状态 离线
『第 12 楼』:  

C:\>dir /-c 磁碟區 C 中的磁碟沒有標籤。 磁碟區序號: 78CD-DF2F C:\ 的目錄 2007-08-12 星期日 下午 09:37 0 AUTOEXEC.BAT 2007-08-12 星期日 下午 09:37 0 CONFIG.SYS 2007-08-12 星期日 下午 10:40 <DIR> Documents and Settings 2007-12-28 星期五 下午 07:05 <DIR> Intel 2008-02-21 星期四 下午 10:14 <DIR> Program Files 2007-09-02 星期日 上午 11:29 <DIR> Program Files 免安裝 2007-08-12 星期日 下午 10:04 <DIR> TempEI4 2008-01-28 星期一 下午 11:24 <DIR> VS2008TrainingKit 2008-02-16 星期六 上午 09:27 <DIR> WINDOWS 2 個檔案 0 位元組 7 個目錄 11365900288 位元組可用 是簡體字...但我已把它轉成繁體的各呀! [ Last edited by xmi on 2008-2-22 at 01:04 AM ]


2008-2-22 01:02
查看资料  发短消息  网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 13 楼』:  

适合繁体的
@echo off for /f "skip=1 delims= " %%a in ('"Wmic LogicalDisk Where DriveType="2" Get DeviceID|find /v "A:""') do call :xxx "%%a" pause :xxx if "%~1"=="" goto:eof if exist "%~1\test.txt" del /q "%~1\test.txt" for /f "tokens=3" %%b in ('dir/-c "%~1\"^|find "位元組可用"') do set freesize=%%b echo 正在写入%freesize%字节大小的测试文件到%~1盘... fsutil file createnew "%~1\test.txt" %freesize% >nul&&echo %~1 盘文件拷贝测试成功!||echo 盘文件拷贝测试失败 del "%~1\test.txt" 2>nul echo. goto:eof




2008-2-22 10:13
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
beyond18wu
初级用户





积分 22
发帖 9
注册 2008-2-21
状态 离线
『第 14 楼』:  

感谢大家的回答,我试了下,上面代码能获取本地磁盘的容量,但移动磁盘容量获取不到是怎么回事


2008-2-22 11:06
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 15 楼』:  

Originally posted by beyond18wu at 2008-2-22 11:06: 感谢大家的回答,我试了下,上面代码能获取本地磁盘的容量,但移动磁盘容量获取不到是怎么回事
13楼只针对繁体版XP,简体的用4楼




2008-2-22 11:45
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: