本帖最后由 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();COPY |
=============================================
拖-文件(夹)到图标(有小数).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();COPY |
=============================================
@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(还希望显示小数)?谢谢 |