无忧启动论坛

标题: 【已解决】bat获取X盘文件大小,提示:路径未找到。谢谢 [打印本页]

作者: yyz2191958    时间: 5 天前
标题: 【已解决】bat获取X盘文件大小,提示:路径未找到。谢谢
本帖最后由 yyz2191958 于 2025-2-19 08:09 编辑

完美解决(见):
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=444784&extra=
==================================
原来的问题
bat获取X盘的文件大小,提示:路径未找到(X盘的:文件夹没有问题。其他盘的:文件夹、文件都没有问题)。谢谢
==================================
文件(夹)(小数)(文件文件夹 拖到 图标上).bat
==================================
@set @x=1 /* &@echo off &::【代码(最前)和(最后)好像不能有字符。(z.toFixed(2)————两位小数)】
set "v=" &set "v=%1"
if not defined v (exit/b) else (set "q=0" &set v=%v:"=%)
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();

===================================
拖X盘文件后显示:
X:\Users\Default\Desktop\文件(夹)(小数).bat(8, 13) Microsoft JScript 运行时 错误: 路径未找到

1.png (3.12 KB, 下载次数: 0)

1.png

2.png (13.32 KB, 下载次数: 0)

2.png

文件(夹)(小数).rar

603 Bytes, 下载次数: 0, 下载积分: 无忧币 -2


作者: cutebe    时间: 5 天前
批处理未识别路径,一般是路径或文件名中有特殊符号。如!%&
作者: szwp    时间: 5 天前
一共有几个盘,试试其它盘
作者: ppll2030    时间: 5 天前
代码目测应该没啥问题。尝试检查一下bat文件的编码,改为ANSI编码。第二看看拖放的文件夹的名字是否有特殊字符,尝试更改简单名字试试
作者: yyz2191958    时间: 5 天前
szwp 发表于 2025-2-17 14:50
一共有几个盘,试试其它盘

就一个盘,c、d两个分区
作者: yyz2191958    时间: 5 天前
ppll2030 发表于 2025-2-17 16:27
代码目测应该没啥问题。尝试检查一下bat文件的编码,改为ANSI编码。第二看看拖放的文件夹的名字是否有特殊 ...

对X盘根目录的文件也一样提示
作者: yyz2191958    时间: 5 天前
cutebe 发表于 2025-2-17 14:11
批处理未识别路径,一般是路径或文件名中有特殊符号。如!%&

对X盘根目录的文件也一样提示
作者: cutebe    时间: 5 天前
if exist "%v%"\斜杠是不是在引号里面:if exist "%v%\"

作者: liuzhaoyzz    时间: 5 天前
把文件拖到运行的窗口不行吗?demo代码:

@echo off
:begin
set /p "file=请输入需要获取大小的文件(把文件拖放到上面,或者右击粘贴带路径的文件名):"
for %%a in ("%file%") do set "size=%%~za"
echo 文件大小为:%size% 字节
echo.
goto :begin

作者: yyz2191958    时间: 5 天前
liuzhaoyzz 发表于 2025-2-17 18:06
把文件拖到运行的窗口不行吗?demo代码:

@echo off

我试一试先 谢谢
作者: yyz2191958    时间: 5 天前
liuzhaoyzz 发表于 2025-2-17 18:06
把文件拖到运行的窗口不行吗?demo代码:

@echo off

能够正确获取文件大小(X盘也正确),不足之处是:不能够根据数值的大小,显示为,字节、KB、MB、GB...
作者: yyz2191958    时间: 5 天前
cutebe 发表于 2025-2-17 17:58
if exist "%v%"\斜杠是不是在引号里面:if exist "%v%\"

我慢慢琢磨,谢谢
作者: yyz2191958    时间: 5 天前
cutebe 发表于 2025-2-17 17:58
if exist "%v%"\斜杠是不是在引号里面:if exist "%v%\"

刚刚试了,斜杠在里面外面都一样
作者: ppll2030    时间: 5 天前
代码保存下来测试了一下,win10下没有问题。你是不是在PE环境下运行的?有可能是过度精简缺少JS脚本运行环境的文件。可以换个PE版本试试
作者: yyz2191958    时间: 5 天前
ppll2030 发表于 2025-2-17 20:50
代码保存下来测试了一下,win10下没有问题。你是不是在PE环境下运行的?有可能是过度精简缺少JS脚本运行环 ...

就是PE环境下运行的,PE 是10PE
作者: ppll2030    时间: 5 天前
yyz2191958 发表于 2025-2-17 21:07
就是PE环境下运行的,PE 是10PE

PE没有win10的完整功能几文件,个大神都会根据需求对PE进行精简的。所以PE下运行错误,很多情况就是支持文件被精简了,这种情况最好换个版本再试试。
作者: ppll2030    时间: 5 天前
yyz2191958 发表于 2025-2-17 21:07
就是PE环境下运行的,PE 是10PE

哦。X盘下文件夹没问题,文件不行,那有可能是权限问题。
能排除代码没问题了,那就就剩PE版本问题了。换了吧
作者: yyz2191958    时间: 5 天前
ppll2030 发表于 2025-2-17 21:15
PE没有win10的完整功能几文件,个大神都会根据需求对PE进行精简的。所以PE下运行错误,很多情况就是支持 ...

问题是:同样是PE环境下运行,对X盘文件出错(文件夹无问题),对C、D盘的文件、文件夹都完全无问题  
作者: yyz2191958    时间: 5 天前
ppll2030 发表于 2025-2-17 21:22
哦。X盘下文件夹没问题,文件不行,那有可能是权限问题。
能排除代码没问题了,那就就剩PE版本问题了。 ...

有道理,谢谢
作者: dos时代菜鸟    时间: 5 天前
fsutil volume diskfree c:
作者: yyz2191958    时间: 5 天前
dos时代菜鸟 发表于 2025-2-17 21:45
fsutil volume diskfree c:

是什么意思?谢谢
作者: szwp    时间: 4 天前
yyz2191958 发表于 2025-2-17 17:25
就一个盘,c、d两个分区

确定其它盘文件的路径及文件名和x盘的一样
作者: szwp    时间: 4 天前
yyz2191958 发表于 2025-2-17 21:46
是什么意思?谢谢

剩余空间及总容量
作者: liuzhaoyzz    时间: 4 天前
本帖最后由 liuzhaoyzz 于 2025-2-18 08:25 编辑
yyz2191958 发表于 2025-2-17 18:25
能够正确获取文件大小(X盘也正确),不足之处是:不能够根据数值的大小,显示为,字节、KB、MB、GB...

sizeof获取文件大小
@echo off
setlocal enabledelayedexpansion
:begin
set /p "file=请输入需要获取大小的文件(把文件拖放到上面,或者右击粘贴带路径的文件名):"
%~sdp0sizeof "%file%"
echo.
goto :begin

sizeof获取文件大小.rar

216.94 KB, 下载次数: 7, 下载积分: 无忧币 -2


作者: yyz2191958    时间: 4 天前
liuzhaoyzz 发表于 2025-2-18 08:22
sizeof获取文件大小
@echo off
setlocal enabledelayedexpansion

我试一试先 谢谢
作者: yyz2191958    时间: 4 天前
liuzhaoyzz 发表于 2025-2-18 08:22
sizeof获取文件大小
@echo off
setlocal enabledelayedexpansion

文件可以,文件夹不行
作者: liuzhaoyzz    时间: 4 天前
本帖最后由 liuzhaoyzz 于 2025-2-19 07:18 编辑
yyz2191958 发表于 2025-2-18 08:31
文件可以,文件夹不行

@echo off
setlocal enabledelayedexpansion
:begin
set /p "file=请输入需要获取大小的文件或者文件夹(把文件或文件夹拖放到上面,或者右击粘贴长路径):"
if "%file:~-1%"=="\" (
set "file=%file%*.*"
) else (
dir "%file%"|find /i "<DIR>" && set "file=%file%\*.*"
)
%~sdp0sizeof /s "%file%"
echo.
goto :begin


sizeof获取文件或文件夹大小.rar

217.1 KB, 下载次数: 3, 下载积分: 无忧币 -2


作者: yyz2191958    时间: 4 天前
liuzhaoyzz 发表于 2025-2-18 12:00
@echo off
setlocal enabledelayedexpansion
:begin

非常感谢,我的问题已经在 “[已解决] 悬赏500无忧币:解决PE下,用批处理“获取X盘的文件大小”出错的问题。谢谢” 完美解决
http://bbs.wuyou.net/forum.php?m ... d=444784&extra=
再次感谢
作者: liuzhaoyzz    时间: 3 天前
yyz2191958 发表于 2025-2-18 12:15
非常感谢,我的问题已经在 “[已解决] 悬赏500无忧币:解决PE下,用批处理“获取X盘的文件大小”出错的问 ...

27楼的帖子,我改了下,之前搞忘了一个参数/s,导致文件夹大小只计算了其下的一级文件,现在包括了子文件夹。

重新下载即可。
作者: yyz2191958    时间: 3 天前
liuzhaoyzz 发表于 2025-2-19 07:19
27楼的帖子,我改了下,之前搞忘了一个参数/s,导致文件夹大小只计算了其下的一级文件,现在包括了子文件 ...

谢谢




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3