标题: [数值计算] 【已解决】批处理如何实现大数字计算 [打印本页]
作者: 小白一个 时间: 2016-9-26 18:16 标题: 【已解决】批处理如何实现大数字计算
本帖最后由 小白一个 于 2016-9-27 08:59 编辑
- set /p filesize=请输入要生成文件的大小(单位:GB):
-
- ::单位从MBytes/GBytes换算成Bytes
- set /a filesize2=%filesize%*1024*1024*1024
- set filename2=%filesize%GB.txt
- fsutil file createnew "%filename2%" %filesize2%
复制代码
使用fsutill创建一个以GB为单位的文件,但使用set /a filesize2=%filesize%*1024*1024*1024 超出了变量范围,导致文件创建失败
变量超出了范围如何处理?
请问如何修改?批处理中是否还有更大空间的参数啊?
作者: 523066680 时间: 2016-9-26 18:46
搜索: 大数
http://bbs.bathome.net/thread-3372-2-1.html
作者: codegay 时间: 2016-9-26 20:30
可以考虑其它语言,比如python
作者: GNU 时间: 2016-9-26 21:49
- @echo off
- set /p filesize=请输入要生成文件的大小(单位:GB):
- ::单位从MBytes/GBytes换算成Bytes
- for /f %%i in ('powershell -c "%filesize%*1024*1024*1024"') do (
- set filesize2=%%i
- )
- set filename2=%filesize%GB.txt
- fsutil file createnew "%filename2%" %filesize2%
复制代码
作者: pcl_test 时间: 2016-9-27 00:41
- @echo off
- set /p size=请输入要生成文件的大小(单位:G/M/K/B):
- for %%a in (G M K) do call set size=%%size:%%a=%%a%%
- if "%size:G=%" neq "%size%" (
- set filesize=%size:G=%*1024*1024*1024
- ) else if "%size:M=%" neq "%size%" (
- set filesize=%size:M=%*1024*1024
- ) else if "%size:K=%" neq "%size%" (
- set filesize=%size:K=%*1024
- ) else set filesize=%size:B=%
- for /f %%a in ('mshta VBScript:Execute("CreateObject(""Scripting.Filesystemobject"").GetStandardStream(1).Write(int(%filesize%))"^)(close^)') do fsutil file createnew "%size:B=%B.txt" %%a
- pause
复制代码
作者: 小白一个 时间: 2016-9-27 08:59
回复 2# 523066680
谢谢答复
作者: 小白一个 时间: 2016-9-27 09:00
回复 4# GNU
这个答案感觉最好,谢谢
作者: cc5511 时间: 2020-8-27 00:44
回复 4# GNU
谢谢大神分享
powershell -c
这个类似 set /a 是吗?
谢谢分享 学习了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |