Board logo

标题: [文件操作] 获取磁盘信息并转化成SQL的批处理有什么问题吗? 为什么会报错呢。 [打印本页]

作者: wwjfeng2015    时间: 2015-5-8 11:16     标题: 获取磁盘信息并转化成SQL的批处理有什么问题吗? 为什么会报错呢。

报错信息
D:\>pause
请按任意键继续. . .
此时不应有 VALUES('tsgammadb1'。

D:\>echo insert into ADMIN.WIN_DISK_INFO(HOSTNAME,DISK_NAME,TOTAL,AVAIL,USAGE) V
ALUES('tsgammadb1',x,%j,%k,%l);
  1. setlocal enabledelayedexpansion
  2. set t=1    1
  3. set t=%t:~1,1%
  4. echo 盘符    总量    剩余量    未用率    使用率>磁盘信息.txt
  5. wmic logicaldisk where drivetype=3 get caption,freespace,size>d.txt
  6. (for /f "skip=1 tokens=1-3" %%i in ('type d.txt') do (
  7. set s=%%k
  8. set /a s=!s:~,-3!/1024/1024
  9. set f=%%j
  10. set /a f=!f:~,-3!/1024/1024
  11. set /a wyl=100*!f!/!s!
  12. set /a syl=100-wyl
  13. echo %%i,!s!,!f!,!syl!
  14. ))>>d:\disk.txt
  15. del d.txt
  16. pause
  17. for /f "delims=, tokens=1-4" %%i in ('d:\disk.txt') do (
  18. pause
  19. set x='%%i'
  20. pause
  21. echo insert%t%into%t%ADMIN.WIN_DISK_INFO(HOSTNAME,DISK_NAME,TOTAL,AVAIL,USAGE)%t%VALUES('tsgammadb1',x,%%j,%%k,%%l);
  22. pause
  23. )>>d:\disk2.txt
  24. pause
复制代码

作者: xxpinqz    时间: 2015-5-8 11:23

)括号要加上^
  1. ,USAGE^)%t%VALUES('tsgammadb1',x,%%j,%%k,%%l^);
复制代码

作者: wwjfeng2015    时间: 2015-5-8 11:40

回复 2# xxpinqz


    感谢大神帮助,小弟还有个问题 在输出的disk2.txt 中 变量x 没有显示它的值。 应该如何写在echo中的x呢?“VALUES('tsgammadb1',x,%%j,%%k,%%l^);



(for /f "delims=, tokens=1-4" %%i in ('type disk.txt') do (
set x='%%i'
echo insert into ADMIN.WIN_DISK_INFO(HOSTNAME,DISK_NAME,TOTAL,AVAIL,USAGE^) VALUES('tsgammadb1',x,%%j,%%k,%%l^);
))>>d:\disk2.txt
作者: xxpinqz    时间: 2015-5-8 11:43

  1. !x!
复制代码

作者: wwjfeng2015    时间: 2015-5-8 11:47

回复 4# xxpinqz

还是不行,输出是这样的。
    insert into ADMIN.WIN_DISK_INFO(HOSTNAME,DISK_NAME,TOTAL,AVAIL,USAGE) VALUES('tsgammadb1',!x!,99,61,39);
作者: xxpinqz    时间: 2015-5-8 12:08

本帖最后由 xxpinqz 于 2015-5-8 12:09 编辑

回复 5# wwjfeng2015
独立出来要加
  1. setlocal enabledelayedexpansion
  2. (for /f "delims=, tokens=1-4" %%i in ('type disk.txt') do (
  3. set x='%%i'
  4. echo insert into ADMIN.WIN_DISK_INFO(HOSTNAME,DISK_NAME,TOTAL,AVAIL,USAGE^) VALUES('tsgammadb1',x,%%j,%%k,%%l^);
  5. ))>>d:\disk2.txt
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2