无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
12
返回列表 发新帖
楼主: yyz2191958
打印 上一主题 下一主题

[已解决] 悬赏500无忧币:解决PE下,用批处理“获取X盘的文件大小”出错的问题。谢谢

  [复制链接]
31#
发表于 5 天前 | 只看该作者
这个是deepseek修改的,也一样好用:

@set @x=1 /* &@echo off
set "v=%~1"
if not defined v exit /b
set "q=0"
if exist "%v%\" (
    set "q=1"
) else if exist "%v%" (
    for %%v in ("%v%") do set "v=%%~zv"
) else (
    set "v=%v:,=%"
)
cscript /nologo /e:jscript "%~f0" "%v%" %q%
pause>nul 2>nul&exit /b */
n=0, v=WSH.arguments, q=v(1);
if (q==1) { z=WSH.createObject('scripting.fileSystemObject').getFolder(v(0)).size }
else z=+v(0);
while (z/1024>=1) {z/=1024; n++; if (n==6) break;}
z=z.toFixed(2)+[' 字节',' KB',' MB',' GB',' TB',' PB',' EB'][n];
WSH.echo(z), WSH.quit();

点评

上午deepseek总是显示服务器繁忙,呵呵  发表于 5 天前
回复

使用道具 举报

32#
发表于 5 天前 | 只看该作者
powershell 法:

@echo off
setlocal enabledelayedexpansion

:: 参数检查
if "%~1"=="" (
    echo 请将文件或文件夹拖放到此脚本上。
    pause
    exit /b
)

:: 获取规范路径并验证存在性
set "item=%~f1"
if not exist "!item!" (
    echo 路径不存在: "!item!"
    pause
    exit /b
)

:: 特殊字符转义处理
set "safe_item=!item:'=''!"
set "safe_item=!safe_item:\=\\!"
set "safe_item=!safe_item:""=\"!"

:: 计算大小
set "size=0"
if exist "!item!\" (
    for /f "delims=" %%a in ('powershell -Command "$sum=0; $path='%safe_item%'; Get-ChildItem -LiteralPath $path -Recurse -File -ErrorAction SilentlyContinue -Force | %%{ $sum += $_.Length }; $sum" 2^>^&1') do (
        set "size=%%a"
    )
) else (
    for %%F in ("!item!") do set "size=%%~zF"
)

:: 错误捕获
if "!size!"=="" (
    echo 无法计算大小,请检查路径权限
    pause
    exit /b
)

:: 单位转换优化
for /f "tokens=1-2" %%i in ('powershell -Command "$bytes=!size!; if($bytes -eq 0){'0 Bytes'}else{$units='Bytes,KB,MB,GB,TB,PB,EB' -split ','; $i=[math]::Floor([math]::Log($bytes,1024)); $i=[math]::Min($i,6); $num=$bytes/[math]::Pow(1024,$i); $fmt= if($i -eq 0){'{0} {1}'}else{'{0:N2} {1}'}; $fmt -f $num,$units[$i]}"') do (
    set "value=%%i"
    set "unit=%%j"
)

:: 结果输出
echo.
echo.   大小: !value! !unit!
echo.
pause

点评

此“powershell 法”代码,可以轻松让deepseek转成lua代码,实现在pe中使用!  发表于 5 天前
回复

使用道具 举报

33#
发表于 5 天前 | 只看该作者
PE 测试确实有用,但不明白这个有什么用?
此电脑 中右键“属性” 或 “鼠标”指针选择后就会出现文件大小;为什么还需要拖一下

点评

刚好3位数字的时候,没有小数点  详情 回复 发表于 5 天前
按楼主的意思是用发送到 但我也是不明白,这个有啥用  详情 回复 发表于 5 天前
回复

使用道具 举报

34#
发表于 5 天前 | 只看该作者
zyy 发表于 2025-2-18 14:34
PE 测试确实有用,但不明白这个有什么用?
此电脑 中右键“属性” 或 “鼠标”指针选择后就会出现文件大小 ...


按楼主的意思是用发送到

但我也是不明白,这个有啥用
回复

使用道具 举报

35#
 楼主| 发表于 5 天前 | 只看该作者
zyy 发表于 2025-2-18 14:34
PE 测试确实有用,但不明白这个有什么用?
此电脑 中右键“属性” 或 “鼠标”指针选择后就会出现文件大小 ...

刚好3位数字的时候,没有小数点

点评

VBS代码中,Fixed(2) 表示保留2位小数点;PowerShell代码中,{0:N2} 表示保留2位小数点。  详情 回复 发表于 4 天前
VBS代码中,Fixed(2) 表示保留2位小数点;PowerShell代码中,{0:N2} 表示保留2位小数点。  发表于 4 天前
就是有无小数点,有啥用呢???  详情 回复 发表于 4 天前
回复

使用道具 举报

36#
发表于 4 天前 | 只看该作者
无论是bat、vbs、powershell,实质上还是通过先获取文件或文件夹的属性,根据属性里显示的大小再转换输出的
回复

使用道具 举报

37#
发表于 4 天前 | 只看该作者
yyz2191958 发表于 2025-2-18 17:31
刚好3位数字的时候,没有小数点

就是有无小数点,有啥用呢???

点评

...  详情 回复 发表于 4 天前
回复

使用道具 举报

38#
发表于 4 天前 来自手机 | 只看该作者
更改路径x盘是你的pe
回复

使用道具 举报

39#
 楼主| 发表于 4 天前 | 只看该作者
martin313 发表于 2025-2-19 10:09
就是有无小数点,有啥用呢???

...

3.png (16.5 KB, 下载次数: 0)

3.png

点评

这个属性要显示小数点位数,通过修改系统注册表,也是可以实现的  详情 回复 发表于 4 天前
就是这个干啥用?  详情 回复 发表于 4 天前
回复

使用道具 举报

40#
发表于 4 天前 | 只看该作者


就是这个干啥用?

点评

有一些时候,需要精确一些  详情 回复 发表于 4 天前
回复

使用道具 举报

41#
发表于 4 天前 | 只看该作者


这个属性要显示小数点位数,通过修改系统注册表,也是可以实现的

点评

我需要3位小数点  详情 回复 发表于 4 天前
能不能给出代码?我需要  详情 回复 发表于 4 天前
回复

使用道具 举报

42#
 楼主| 发表于 4 天前 | 只看该作者
martin313 发表于 2025-2-19 11:03
就是这个干啥用?

有一些时候,需要精确一些
回复

使用道具 举报

43#
 楼主| 发表于 4 天前 | 只看该作者
martin313 发表于 2025-2-19 11:04
这个属性要显示小数点位数,通过修改系统注册表,也是可以实现的

能不能给出代码?我需要
回复

使用道具 举报

44#
 楼主| 发表于 4 天前 | 只看该作者
martin313 发表于 2025-2-19 11:04
这个属性要显示小数点位数,通过修改系统注册表,也是可以实现的

我需要3位小数点

点评

要通过修改注册表在Windows中实现文件或文件夹大小显示小数点后三位数,可以尝试以下方法。但需注意,此操作可能影响系统中其他数字的显示格式,请谨慎操作并提前备份注册表。 步骤如下: 打开注册表编辑器 按  详情 回复 发表于 4 天前
问问deepseek : 如何通过修改注册表,在windows系统里实现查看文件夹或文件属性时,文件夹或文件大小显示小数点后3位数?  详情 回复 发表于 4 天前
回复

使用道具 举报

45#
发表于 4 天前 | 只看该作者

问问deepseek :

如何通过修改注册表,在windows系统里实现查看文件夹或文件属性时,文件夹或文件大小显示小数点后3位数?
回复

使用道具 举报

46#
发表于 4 天前 | 只看该作者

要通过修改注册表在Windows中实现文件或文件夹大小显示小数点后三位数,可以尝试以下方法。但需注意,此操作可能影响系统中其他数字的显示格式,请谨慎操作并提前备份注册表。

步骤如下:
打开注册表编辑器
按下 Win + R,输入 regedit,回车并确认管理员权限。

导航至区域格式设置项
转到以下路径:

复制
HKEY_CURRENT_USER\Control Panel\International
修改小数位数键值

找到右侧的 iDigits 键值(控制小数位数)。

双击 iDigits,将其数值数据从默认的 2 改为 3(表示显示三位小数)。

如果不存在 iDigits,右键新建一个字符串值(REG_SZ)并命名为 iDigits,再设置值为 3。

重启资源管理器或系统

按 Ctrl + Shift + Esc 打开任务管理器,找到“Windows 资源管理器”,右键选择“重新启动”。

或直接重启电脑使设置生效。

验证效果
右键查看文件/文件夹属性,检查大小是否显示三位小数(如 1.234 MB)。

注意事项
全局影响:此修改会调整系统中所有依赖区域格式的数字显示,例如部分应用程序中的数字、货币等。

兼容性问题:并非所有Windows版本均支持此调整,部分系统可能忽略此设置或仅影响特定场景。

单位限制:文件资源管理器可能根据单位(KB/MB/GB)自动调整小数位数,例如在GB单位下默认显示更多小数位。

替代方案
如果上述方法无效或不愿影响其他数字格式,可考虑:

使用第三方工具
例如 Folder Size、TreeSize 等工具,支持自定义文件大小显示格式。

脚本或批处理
通过PowerShell脚本获取精确大小并格式化输出。

请确保理解风险后再操作,必要时创建系统还原点。

点评

是呀,10 PE 没有效果哦  详情 回复 发表于 4 天前
我试一试 谢谢  详情 回复 发表于 4 天前
尝试修改了注册表,好像没啥效果  发表于 4 天前

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5

查看全部评分

回复

使用道具 举报

47#
 楼主| 发表于 4 天前 | 只看该作者
martin313 发表于 2025-2-19 12:20
要通过修改注册表在Windows中实现文件或文件夹大小显示小数点后三位数,可以尝试以下方法。但需注意,此 ...

我试一试 谢谢
回复

使用道具 举报

48#
 楼主| 发表于 4 天前 | 只看该作者
martin313 发表于 2025-2-19 12:20
要通过修改注册表在Windows中实现文件或文件夹大小显示小数点后三位数,可以尝试以下方法。但需注意,此 ...

是呀,10 PE 没有效果哦
回复

使用道具 举报

49#
发表于 4 天前 | 只看该作者
以前xp 系统有个DLL, 显示文件夹大小 ,特别好用, win10没了
回复

使用道具 举报

50#
发表于 4 天前 | 只看该作者
yyz2191958 发表于 2025-2-18 17:31
刚好3位数字的时候,没有小数点


VBS代码中,Fixed(2) 表示保留2位小数点;PowerShell代码中,{0:N2} 表示保留2位小数点。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-2-23 04:49

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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