![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 11:57 |
共 48,040 主题排行 / 350,125 发帖 / 今日 0 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [讨论]WMIC的产生的临时文件 |
| 可打印版本 972 / 5 |
| 第1楼 qzwqzw | 发表于 2008-01-24 20:14 |
| 银牌会员 发帖 636 积分 2,343 | |
|
[讨论]WMIC的产生的临时文件 我在一个批处理中使用下面代码获取磁盘空间
wmic logicaldisk get DeviceID,FreeSpace,Size | findstr "%_Drives%" 但是发现程序某些时刻运行时会失去响应 此时在当前命令行下直接运行以下代码也会失去响应 wmic logicaldisk get DeviceID,FreeSpace,Size 在输入一个Ctrl+Z和一个回车后会继续输出执行结果 此时会在当前路径下产生一个零字节的文件 TempWmicBatchFile.bat 此时另开一个命令行环境 当前路径相同 执行此代码无问题 与此相关的问题也出现使用脚本操作diskpart列磁盘分区时 此时只能Ctrl+Break终止代码执行 怀疑是这些命令在执行时会锁定一些卷 而如果在这些命令上使用管道 而命令的管道管道需要在%TMP%产生临时文件 而如果%TMP%所在卷恰被锁定 则临时文件无法建立在这个卷上建立 管道操作就无法完成 管道后的命令输入被转向控制台 而输入Ctrl+Z加回车后正是结束控制台输入 当然目前为止这只是猜测…… [ Last edited by qzwqzw on 2008-1-24 at 08:24 PM ] |
|
| 第2楼 fastslz | 发表于 2008-01-24 20:24 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
哈哈是不是和我一样啊,检查批处理set /p
http://www.cn-dos.net/forum/viewthread.php?tid=37191&fpage=4 |
|
| 第3楼 ZJHJ | 发表于 2008-01-24 20:45 |
| 高级用户 发帖 374 积分 609 | |
|
我也经常遇到执行带有wmic的命令时,确实有不响应的情况,重新执行命令又会正常.
不知道为什么?还有,执行带有wmic的命令时,磁盘会响.遇这种不稳定情况,我不得不 绕道走. |
|
| 第4楼 qzwqzw | 发表于 2008-01-24 20:50 |
| 银牌会员 发帖 636 积分 2,343 | |
|
这种情况与我的情况是有区别的
我的情况很可能是源于自定义句柄的“污染” 见2楼的讨论 而你的情况则属于wmic自身的问题 很有可能是没有用where、get子句限定某些数据量较大的查询 导致wmic类SQL的查询严重消耗系统资源 比如在wmic中单独使用NTDOMAIN的别名时 [ Last edited by qzwqzw on 2008-1-24 at 08:54 PM ] |
|
| 第5楼 fastslz | 发表于 2008-01-24 22:03 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
@echo off
>test.x echo /APPEND:disk.txt >>test.x echo logicaldisk get DeviceID,FreeSpace,Size >>test.x echo quit wmic.exe<test.x pause 这样看来TempWmicBatchFile.bat是WMIC默认的,问题可能还是某命令重定向问题 |
|
| 第6楼 everest79 | 发表于 2008-01-25 04:29 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
wmic的临时文件是由管道产生的
wmic会将管道符的字符流重新定义到当前目录下的文件中,再通过类似wmic <temp.bat 来执行 例如echo process|wmic 会先产生文件tempwmicbatchfile.bat,然后将这个文件输入wmic,所以执行时因在结尾会有两个回车符而出现两次错误提示,这大概是wmic的一种批处理保障,避免按行来执行wmic命令,节省系统资源 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |