首页 新闻 会员 周边

批处理获取磁盘空间并导出文本文件

0
悬赏园豆:30 [待解决问题]

批处理获取磁盘空间并导出文本文件,要像日志文件那种,有日期的,谢谢

问题补充:

@echo off
rem write to log
set filename=磁盘空间日志.log
echo -------------------这是一条没有感情的分割线------------------------- >>%filename%
echo Start >>%filename%
echo (%date% %time%) >>%filename%

net use O: \192.168.0.127\127d Kovn2020 /user:administrator
net use P: \192.168.0.128\128d Kovn2020 /user:administrator
net use Q: \192.168.0.130\130d Kovn2020 /user:administrator

setlocal enabledelayedexpansion
:Main
cls
set /a num2=10241024
for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
if exist %%i: (
set num3_str=
set num4=
for /f "tokens=3" %%j in ('dir /-c %%i:') do set num1=%%j
if not "!num1!"=="0" (
call :loop
for /f "delims=0 tokens=
" %%k in ("!num3_str!") do set num3_str=%%k
echo.
echo %%i 盘剩余空间为 !num3_str! MB
echo %%i !num3_str! MB >>%filename%
echo.
)
)
)
)
net use O: /delete /y
net use P: /delete /y
net use Q: /delete /y
pause
goto Main
:loop
:: 求商
set /a num3=%num4%%num1:~0,1%/%num2%
:: 求商序列
set num3_str=%num3_str%%num3%
:: 求余
set /a num4=%num4%%num1:~0,1%%%%num2%
if %num4% equ 0 set num4=
set num1=%num1:~1%
if not "%num1%"=="" goto loop
goto :eof

echo End >>%filename%
echo (%date% %time%) >>%filename%

怎么才能使导出的文件单位是G呢? 不支持32位以上的字符,能不能曲线救国?通过其他办法解决一下

怎样共勉的主页 怎样共勉 | 初学一级 | 园豆:126
提问于:2019-10-05 08:05
< >
分享
所有回答(3)
-1

哪个环境,windows还是linux。
导出什么内容的日志文件?
日志文件的具体格式呢?
连问题都描述不清楚,还问什么问题呢?

从此寂静无声 | 园豆:210 (菜鸟二级) | 2019-10-06 18:07

windows 环境 导出的文件内容比如:2019-10-7 07:40:20:000 C盘:xxxG
D盘:xxxG
导出的日志文件是txt格式的,请问还有什么需要补充的吗?

支持(0) 反对(0) 怎样共勉 | 园豆:126 (初学一级) | 2019-10-07 07:50

net use O: \192.168.0.127\127d Kovn2020 /user:administrator
net use P: \192.168.0.128\128d Kovn2020 /user:administrator
net use Q: \192.168.0.130\130d Kovn2020 /user:administrator

因为是需要取服务器的磁盘空间,为了安全起见,
首先映射网络,然后读取空间,生成日志文件,然后关闭映射
代码要放在这中间的位置,或者看看还有其他办法解决吗?

net use O: /delete /y
net use P: /delete /y
net use Q: /delete /y

支持(0) 反对(0) 怎样共勉 | 园豆:126 (初学一级) | 2019-10-07 07:57

大神,怎么批评完我消失了呢?帮个忙,看看这个怎么处理

支持(0) 反对(0) 怎样共勉 | 园豆:126 (初学一级) | 2019-10-08 09:51
0

@echo off
rem write to log
set filename=磁盘空间日志.log
echo -------------------这是一条没有感情的分割线------------------------- >>%filename%
echo Start >>%filename%
echo (%date% %time%) >>%filename%

net use O: \192.168.0.127\127d Kovn2020 /user:administrator
net use P: \192.168.0.128\128d Kovn2020 /user:administrator
net use Q: \192.168.0.130\130d Kovn2020 /user:administrator

setlocal enabledelayedexpansion
:Main
cls
set /a num2=10241024
for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
if exist %%i: (
set num3_str=
set num4=
for /f "tokens=3" %%j in ('dir /-c %%i:') do set num1=%%j
if not "!num1!"=="0" (
call :loop
for /f "delims=0 tokens=
" %%k in ("!num3_str!") do set num3_str=%%k
echo.
echo %%i 盘剩余空间为 !num3_str! MB
echo %%i !num3_str! MB >>%filename%
echo.
)
)
)
)
net use O: /delete /y
net use P: /delete /y
net use Q: /delete /y
pause
goto Main
:loop
:: 求商
set /a num3=%num4%%num1:~0,1%/%num2%
:: 求商序列
set num3_str=%num3_str%%num3%
:: 求余
set /a num4=%num4%%num1:~0,1%%%%num2%
if %num4% equ 0 set num4=
set num1=%num1:~1%
if not "%num1%"=="" goto loop
goto :eof

echo End >>%filename%
echo (%date% %time%) >>%filename%

怎样共勉 | 园豆:126 (初学一级) | 2019-10-10 07:36
0

别在这问了。专心在bathome问了等答案就是了。

bat里做计算麻烦得要死。
代码可读性极差。

墨镜带佬星 | 园豆:2294 (老鸟四级) | 2019-10-12 07:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册