无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 466|回复: 39
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
本帖最后由 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

点评

这是 10 PE 下操作的  发表于 4 天前
这代码好在:能根据数值的大小,自动显示为:字节、KB、MB、GB... ...  发表于 4 天前
2#
发表于 4 天前 | 只看该作者
批处理未识别路径,一般是路径或文件名中有特殊符号。如!%&

点评

对X盘根目录的文件也一样提示  详情 回复 发表于 4 天前

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5 没有!%&也一样

查看全部评分

回复

使用道具 举报

3#
发表于 4 天前 | 只看该作者
一共有几个盘,试试其它盘

点评

就一个盘,c、d两个分区  详情 回复 发表于 4 天前

评分

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

查看全部评分

回复

使用道具 举报

4#
发表于 4 天前 | 只看该作者
代码目测应该没啥问题。尝试检查一下bat文件的编码,改为ANSI编码。第二看看拖放的文件夹的名字是否有特殊字符,尝试更改简单名字试试

点评

对X盘根目录的文件也一样提示  详情 回复 发表于 4 天前

评分

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

查看全部评分

回复

使用道具 举报

5#
 楼主| 发表于 4 天前 | 只看该作者
szwp 发表于 2025-2-17 14:50
一共有几个盘,试试其它盘

就一个盘,c、d两个分区

点评

确定其它盘文件的路径及文件名和x盘的一样  详情 回复 发表于 3 天前
回复

使用道具 举报

6#
 楼主| 发表于 4 天前 | 只看该作者
ppll2030 发表于 2025-2-17 16:27
代码目测应该没啥问题。尝试检查一下bat文件的编码,改为ANSI编码。第二看看拖放的文件夹的名字是否有特殊 ...

对X盘根目录的文件也一样提示
回复

使用道具 举报

7#
 楼主| 发表于 4 天前 | 只看该作者
cutebe 发表于 2025-2-17 14:11
批处理未识别路径,一般是路径或文件名中有特殊符号。如!%&

对X盘根目录的文件也一样提示
回复

使用道具 举报

8#
发表于 4 天前 | 只看该作者
if exist "%v%"\斜杠是不是在引号里面:if exist "%v%\"

点评

刚刚试了,斜杠在里面外面都一样  详情 回复 发表于 4 天前
我慢慢琢磨,谢谢  详情 回复 发表于 4 天前

评分

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

查看全部评分

回复

使用道具 举报

9#
发表于 4 天前 | 只看该作者
把文件拖到运行的窗口不行吗?demo代码:

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

点评

能够正确获取文件大小(X盘也正确),不足之处是:不能够根据数值的大小,显示为,字节、KB、MB、GB...  详情 回复 发表于 4 天前
我试一试先 谢谢  详情 回复 发表于 4 天前

评分

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

查看全部评分

回复

使用道具 举报

10#
 楼主| 发表于 4 天前 | 只看该作者
liuzhaoyzz 发表于 2025-2-17 18:06
把文件拖到运行的窗口不行吗?demo代码:

@echo off

我试一试先 谢谢
回复

使用道具 举报

11#
 楼主| 发表于 4 天前 | 只看该作者
liuzhaoyzz 发表于 2025-2-17 18:06
把文件拖到运行的窗口不行吗?demo代码:

@echo off

能够正确获取文件大小(X盘也正确),不足之处是:不能够根据数值的大小,显示为,字节、KB、MB、GB...

点评

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

使用道具 举报

12#
 楼主| 发表于 4 天前 | 只看该作者
cutebe 发表于 2025-2-17 17:58
if exist "%v%"\斜杠是不是在引号里面:if exist "%v%\"

我慢慢琢磨,谢谢
回复

使用道具 举报

13#
 楼主| 发表于 4 天前 | 只看该作者
cutebe 发表于 2025-2-17 17:58
if exist "%v%"\斜杠是不是在引号里面:if exist "%v%\"

刚刚试了,斜杠在里面外面都一样
回复

使用道具 举报

14#
发表于 4 天前 来自手机 | 只看该作者
代码保存下来测试了一下,win10下没有问题。你是不是在PE环境下运行的?有可能是过度精简缺少JS脚本运行环境的文件。可以换个PE版本试试

点评

问题是:同样是PE环境下运行,对X盘文件出错(文件夹无问题),对C、D盘完全无问题  发表于 4 天前
就是PE环境下运行的,PE 是10PE  详情 回复 发表于 4 天前

评分

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

查看全部评分

回复

使用道具 举报

15#
 楼主| 发表于 4 天前 | 只看该作者
ppll2030 发表于 2025-2-17 20:50
代码保存下来测试了一下,win10下没有问题。你是不是在PE环境下运行的?有可能是过度精简缺少JS脚本运行环 ...

就是PE环境下运行的,PE 是10PE

点评

哦。X盘下文件夹没问题,文件不行,那有可能是权限问题。 能排除代码没问题了,那就就剩PE版本问题了。换了吧  详情 回复 发表于 4 天前
PE没有win10的完整功能几文件,个大神都会根据需求对PE进行精简的。所以PE下运行错误,很多情况就是支持文件被精简了,这种情况最好换个版本再试试。  详情 回复 发表于 4 天前
回复

使用道具 举报

16#
发表于 4 天前 | 只看该作者
yyz2191958 发表于 2025-2-17 21:07
就是PE环境下运行的,PE 是10PE

PE没有win10的完整功能几文件,个大神都会根据需求对PE进行精简的。所以PE下运行错误,很多情况就是支持文件被精简了,这种情况最好换个版本再试试。

点评

问题是:同样是PE环境下运行,对X盘文件出错(文件夹无问题),对C、D盘的文件、文件夹都完全无问题  详情 回复 发表于 4 天前
回复

使用道具 举报

17#
发表于 4 天前 | 只看该作者
yyz2191958 发表于 2025-2-17 21:07
就是PE环境下运行的,PE 是10PE

哦。X盘下文件夹没问题,文件不行,那有可能是权限问题。
能排除代码没问题了,那就就剩PE版本问题了。换了吧

点评

有道理,谢谢  详情 回复 发表于 4 天前

评分

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

查看全部评分

回复

使用道具 举报

18#
 楼主| 发表于 4 天前 | 只看该作者
ppll2030 发表于 2025-2-17 21:15
PE没有win10的完整功能几文件,个大神都会根据需求对PE进行精简的。所以PE下运行错误,很多情况就是支持 ...

问题是:同样是PE环境下运行,对X盘文件出错(文件夹无问题),对C、D盘的文件、文件夹都完全无问题  
回复

使用道具 举报

19#
 楼主| 发表于 4 天前 | 只看该作者
ppll2030 发表于 2025-2-17 21:22
哦。X盘下文件夹没问题,文件不行,那有可能是权限问题。
能排除代码没问题了,那就就剩PE版本问题了。 ...

有道理,谢谢
回复

使用道具 举报

20#
发表于 4 天前 | 只看该作者
fsutil volume diskfree c:

点评

是什么意思?谢谢  详情 回复 发表于 4 天前

评分

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

查看全部评分

回复

使用道具 举报

21#
 楼主| 发表于 4 天前 | 只看该作者

是什么意思?谢谢

点评

剩余空间及总容量  详情 回复 发表于 3 天前
回复

使用道具 举报

22#
发表于 3 天前 | 只看该作者
yyz2191958 发表于 2025-2-17 17:25
就一个盘,c、d两个分区

确定其它盘文件的路径及文件名和x盘的一样
回复

使用道具 举报

23#
发表于 3 天前 | 只看该作者
yyz2191958 发表于 2025-2-17 21:46
是什么意思?谢谢

剩余空间及总容量
回复

使用道具 举报

24#
发表于 3 天前 | 只看该作者
本帖最后由 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

点评

文件可以,文件夹不行  详情 回复 发表于 3 天前
我试一试先 谢谢  详情 回复 发表于 3 天前

评分

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

查看全部评分

回复

使用道具 举报

25#
 楼主| 发表于 3 天前 | 只看该作者
liuzhaoyzz 发表于 2025-2-18 08:22
sizeof获取文件大小
@echo off
setlocal enabledelayedexpansion

我试一试先 谢谢
回复

使用道具 举报

26#
 楼主| 发表于 3 天前 | 只看该作者
liuzhaoyzz 发表于 2025-2-18 08:22
sizeof获取文件大小
@echo off
setlocal enabledelayedexpansion

文件可以,文件夹不行

点评

@echo off setlocal enabledelayedexpansion :begin set /p "file=请输入需要获取大小的文件或者文件夹(把文件拖放到上面,或者右击粘贴带路径的文件名):" if "%file:~-1%"=="\" ( set "file=%file%*.*" )  详情 回复 发表于 3 天前
回复

使用道具 举报

27#
发表于 3 天前 | 只看该作者
本帖最后由 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

点评

非常感谢,我的问题已经在 “[已解决] 悬赏500无忧币:解决PE下,用批处理“获取X盘的文件大小”出错的问题。谢谢” 完美解决 再次感谢  详情 回复 发表于 3 天前
回复

使用道具 举报

28#
 楼主| 发表于 3 天前 | 只看该作者
liuzhaoyzz 发表于 2025-2-18 12:00
@echo off
setlocal enabledelayedexpansion
:begin

非常感谢,我的问题已经在 “[已解决] 悬赏500无忧币:解决PE下,用批处理“获取X盘的文件大小”出错的问题。谢谢” 完美解决
http://bbs.wuyou.net/forum.php?m ... d=444784&extra=
再次感谢

点评

27楼的帖子,我改了下,之前搞忘了一个参数/s,导致文件夹大小只计算了其下的一级文件,现在包括了子文件夹。 重新下载即可。  详情 回复 发表于 前天 07:19
回复

使用道具 举报

29#
发表于 前天 07:19 | 只看该作者
yyz2191958 发表于 2025-2-18 12:15
非常感谢,我的问题已经在 “[已解决] 悬赏500无忧币:解决PE下,用批处理“获取X盘的文件大小”出错的问 ...

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

重新下载即可。

点评

谢谢  详情 回复 发表于 前天 07:39

评分

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

查看全部评分

回复

使用道具 举报

30#
 楼主| 发表于 前天 07:39 | 只看该作者
liuzhaoyzz 发表于 2025-2-19 07:19
27楼的帖子,我改了下,之前搞忘了一个参数/s,导致文件夹大小只计算了其下的一级文件,现在包括了子文件 ...

谢谢
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-2-21 20:40

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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