找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 31426|回复: 7

[数值计算] 【已解决】批处理如何实现大数字计算

[复制链接]
发表于 2016-9-26 18:16:52 | 显示全部楼层 |阅读模式
本帖最后由 小白一个 于 2016-9-27 08:59 编辑
  1. set /p filesize=请输入要生成文件的大小(单位:GB):

  2. ::单位从MBytes/GBytes换算成Bytes
  3. set /a filesize2=%filesize%*1024*1024*1024
  4. set filename2=%filesize%GB.txt
  5. fsutil file createnew "%filename2%" %filesize2%
复制代码
使用fsutill创建一个以GB为单位的文件,但使用set /a filesize2=%filesize%*1024*1024*1024 超出了变量范围,导致文件创建失败

变量超出了范围如何处理?
请问如何修改?批处理中是否还有更大空间的参数啊?

评分

参与人数 2PB -2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样
pcl_test -4 发帖前先使用论坛搜索

查看全部评分

发表于 2016-9-26 18:46:03 | 显示全部楼层
发表于 2016-9-26 20:30:09 | 显示全部楼层

可以考虑其它语言,比如python
发表于 2016-9-26 21:49:54 | 显示全部楼层
  1. @echo off
  2. set /p filesize=请输入要生成文件的大小(单位:GB):
  3. ::单位从MBytes/GBytes换算成Bytes
  4. for /f %%i in ('powershell -c "%filesize%*1024*1024*1024"') do (
  5.     set filesize2=%%i
  6. )
  7. set filename2=%filesize%GB.txt
  8. fsutil file createnew "%filename2%" %filesize2%
复制代码

评分

参与人数 1技术 +1 收起 理由
小白一个 + 1 这个答案最满意,谢谢

查看全部评分

发表于 2016-9-27 00:41:44 | 显示全部楼层
  1. @echo off
  2. set /p size=请输入要生成文件的大小(单位:G/M/K/B):
  3. for %%a in (G M K) do call set size=%%size:%%a=%%a%%
  4. if "%size:G=%" neq "%size%" (
  5.     set filesize=%size:G=%*1024*1024*1024
  6. ) else if "%size:M=%" neq "%size%" (
  7.     set filesize=%size:M=%*1024*1024
  8. ) else if "%size:K=%" neq "%size%" (
  9.     set filesize=%size:K=%*1024
  10. ) else set filesize=%size:B=%
  11. 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
  12. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
小白一个 + 1 谢谢答复,我仔细研究一下

查看全部评分

 楼主| 发表于 2016-9-27 08:59:44 | 显示全部楼层
回复 2# 523066680


    谢谢答复
 楼主| 发表于 2016-9-27 09:00:08 | 显示全部楼层
回复 4# GNU


    这个答案感觉最好,谢谢
发表于 2020-8-27 00:44:29 | 显示全部楼层
回复 4# GNU


    谢谢大神分享
powershell -c
这个类似 set /a 是吗?

谢谢分享 学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 05:50 , Processed in 0.033883 second(s), 15 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表