无忧启动论坛

 找回密码
 注册
搜索

【已解决】这个bat的显示,可以弄到中间吗?谢谢

查看数: 924 | 评论数: 17 | 收藏 2
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2025-3-15 11:38

正文摘要:

本帖最后由 yyz2191958 于 2025-3-16 07:43 编辑 完美解决了: @set @x=1 /* &@echo off &::【代码(最前)和(最后)好像不能有字符。(z.toFixed(3)————3位小数)】 ::============================= ...

回复

helllo2025 发表于 前天 00:51
感谢分享
Juliany 发表于 3 天前
  1. @echo off
  2. chcp 65001 >nul
  3. setlocal enabledelayedexpansion

  4. :: 获取控制台宽度
  5. for /f "tokens=2 delims=:" %%a in ('mode con ^| find "Columns"') do set cols=%%a

  6. :: 要输出的文本
  7. set "text=居中的文本"

  8. :: 计算居中位置
  9. set /a spaces=(cols - 1) / 2
  10. set "padding="
  11. for /l %%i in (1,1,!spaces!) do set "padding=!padding! "

  12. :: 输出居中文本
  13. echo.!padding!!text!

  14. pause
复制代码
lovelyelfpop 发表于 2025-4-5 17:44:25
感谢分享
yzydys 发表于 2025-3-15 16:09:41
谢谢大牛的分享!!!
plutoshen 发表于 2025-3-15 15:35:40
提示: 作者被禁止或删除 内容自动屏蔽
2012zhiwen 发表于 2025-3-15 15:17:42
你好,正确的批处理可以完整贴出不。并且做好分界线说明,谢谢。
yzszh64 发表于 2025-3-15 14:58:40
谢谢各位。
小灰兔 发表于 2025-3-15 14:41:01
感谢分享
绿光科技 发表于 2025-3-15 13:06:39
这个代码有意思呀
yyz2191958 发表于 2025-3-15 12:14:10
martin313 发表于 2025-3-15 12:06
请自行调整

var screenHeight = 25; // 假设屏幕高度为25行

成功了  再次感谢
martin313 发表于 2025-3-15 12:06:17
请自行调整

var screenHeight = 25; // 假设屏幕高度为25行
var screenWidth = 80;  // 假设屏幕宽度为80列

达到你想要的显示效果

点评

成功了 再次感谢  详情 回复 发表于 2025-3-15 12:14

评分

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

查看全部评分

yyz2191958 发表于 2025-3-15 12:05:48
martin313 发表于 2025-3-15 12:04
@set @x=1 /* &@echo off
echo.
set "v=%~1"

谢谢,我慢慢琢磨
martin313 发表于 2025-3-15 12:04:10
yyz2191958 发表于 2025-3-15 11:43
麻烦你看下代码,里面好像不全是BAT代码

@set @x=1 /* &@echo off
echo.
set "v=%~1"
if not defined v exit /b
set "q=0"
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];

// 计算屏幕中间位置
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();


注意事项:
如果屏幕的实际高度和宽度与代码中假设的 screenHeight 和 screenWidth 不一致,可以动态获取屏幕大小(例如通过 PowerShell 或其他方法),然后传递给 JScript。

如果需要更精确的居中效果,可以考虑使用 PowerShell 或第三方工具来实现更复杂的控制。

点评

谢谢,我慢慢琢磨  详情 回复 发表于 2025-3-15 12:05

评分

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

查看全部评分

yyz2191958 发表于 2025-3-15 12:03:54

在哪里修改?这样修改?谢谢
martin313 发表于 2025-3-15 11:58:38
yyz2191958 发表于 2025-3-15 11:43
麻烦你看下代码,里面好像不全是BAT代码

图片20250315115806.png (65.08 KB, 下载次数: 4)

图片20250315115806.png

点评

在哪里修改?这样修改?谢谢  详情 回复 发表于 2025-3-15 12:03

评分

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

查看全部评分

yyz2191958 发表于 2025-3-15 11:43:56
martin313 发表于 2025-3-15 11:41
完全可以

echo.    加上需要显示的内容

麻烦你看下代码,里面好像不全是BAT代码

点评

@set @x=1 /* &@echo off echo. set "v=%~1" if not defined v exit /b set "q=0" if exist "%v%\" ( set "q=1" ) else if exist "%v%" ( for %%v in ("%v%") do set "v=%%~zv" ) else ( set  详情 回复 发表于 2025-3-15 12:04
martin313 发表于 2025-3-15 11:41:42
完全可以

echo.    加上需要显示的内容

点评

麻烦你看下代码,里面好像不全是BAT代码  详情 回复 发表于 2025-3-15 11:43

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

闽公网安备 35020302032614号

GMT+8, 2025-4-18 23:34

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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