|
本帖最后由 yyz2191958 于 2025-3-16 07:43 编辑
完美解决了:
@set @x=1 /* &@echo off &::【代码(最前)和(最后)好像不能有字符。(z.toFixed(3)————3位小数)】
::==============================================================================================
if "%~1"=="" goto :Q
::【双击,输入数字————计算】【拖到图标:复制 ————文件(夹)的路径】
::==============================================================================================
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(); // 如果不需要居中,则删行首的 “//” 及下一行以后的全部
// 计算屏幕中间位置
var screenHeight = 25; // 假设屏幕高度为25行
var screenWidth = 80; // 假设屏幕宽度为80列
var output = z;
var outputLength = output.length;
var spaces = Math.floor((screenWidth - outputLength) / 2);
var emptyLines = Math.floor((screenHeight - 1) / 2);
// 输出空行
for (var i = 0; i < emptyLines; i++) {
WSH.echo("");
}
// 输出空格(使用循环代替 repeat)
var spaceString = "";
for (var i = 0; i < spaces; i++) {
spaceString += " ";
}
// 输出结果
WSH.echo(spaceString + output);
WSH.quit();
========================
原来的问题:
这个bat的显示,可以弄到中间吗?谢谢
@set @x=1 /* &@echo off &::【代码(最前)和(最后)好像不能有字符。(z.toFixed(3)————3位小数)】
::==============================================================================================
if "%~1"=="" goto :Q
::【双击,输入数字————计算】【拖到图标:复制 ————文件(夹)的路径】
::==============================================================================================
echo.%~1|clip.exe
:Q
set/p "路径(数字)=文件(夹)路径 或 数字:"
cls
::==============================================================================================
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();
|
|