本帖最后由 yyz219 于 2025-2-21 08:29 编辑
完美解决了(获取文件、文件夹大小、输入数字进行计算————都行)- @set @x=1 /* &@echo off &::【代码(最前)和(最后)好像不能有字符。(z.toFixed(3)————3位小数)】
- ::==============================================================================================
- if "%~1"=="" goto :Q
- ::【双击,输入数字————计算】【拖到图标 Ctrl+V ————文件(夹)的大小】
- ::==============================================================================================
- echo.%~1|clip.exe
- :Q
- set/p "路径(数字)=文件(夹)路径 或 数字:"
- ::==============================================================================================
- set "v=" &set "v=%路径(数字)%"
- set "q=0"
- dir /ad "%路径(数字)%" >nul 2>&1
- if %errorlevel% equ 0 (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(3)+[' 字节',' KB',' MB',' GB',' TB',' PB',' EB'][n];
- WSH.echo(z), WSH.quit();
复制代码 =============================================
拖-文件(夹)到图标(有小数).bat- @set @x=1 /* &@echo off &::【代码(最前)和(最后)好像不能有字符。(z.toFixed(3)————3位小数)】
- if "%~1"=="" exit /b 3
- if not exist %1 exit /b 3
- set "v=" &set "v=%~1"
- set "q=0"
- dir /ad %1 >nul 2>&1
- if %errorlevel% equ 0 (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(3)+[' 字节',' KB',' MB',' GB',' TB',' PB',' EB'][n];
- WSH.echo(z), WSH.quit();
复制代码 =============================================
@set @x=1 /* &@echo off
(for /d %%d in (*) do cscript /nologo /e:jscript "%~f0" "%%~fd")>结果列表.txt
exit/b */
v=WSH.arguments, fso=WSH.createObject('scripting.fileSystemObject');
n=0, z=fso.getFolder(v(0)).size; while(z/1024>1){z/=1024;n++};
z=z.toFixed(2)+['B','KB','MB','GB','TB'][n];
WSH.echo(z+' '+v(0)), WSH.quit();
=================================================
在一个文件夹里面运行以后,输出:
15.40MB D:\桌面\Desktop\!!!\webp-转-png-JPG
328.00B D:\桌面\Desktop\!!!\新建文件夹
203.65KB D:\桌面\Desktop\!!!\模拟点关闭按钮
==================================================
怎样才能在bat窗口输入一个数字,就跟上面一样自动显示:B或KB或MB或GB(还希望显示小数)?谢谢 |