找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 10949|回复: 6

[其它] log输出怎么自动加空格

[复制链接]
发表于 2022-3-22 15:19:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
本帖最后由 xuxi3201 于 2022-3-22 15:37 编辑

#
{
:local aaa;:local bbb;:local ccc;:local ddd;
:local fff;:local ggg;:local ccc;:local hhh;
:foreach i in=[/queue simple find ] do=\
{
:set $aaa [/queue simple get $i target];
:set $bbb [/queue simple get $i bytes];
:set $fff [/queue simple get $i comment];
:set $ccc [:pick $bbb 0 [:find $bbb "/"]];
:set $ddd  [:pick $bbb ([:find $bbb "/"] +1) [:len $bbb]];
:set $ccc ($ccc / 1073741824);
:set $ddd ($ddd / 1073741824);
:local eee ($ccc . "/" . $ddd)
#
:if ($fff !="") do=\
  {
  :set $aaa [:pick $aaa 0 [:find $aaa "/"]]
  :set $ggg [:pick $fff 0 [:find $fff "/"]];
  :set $hhh  [:pick $fff ([:find $fff "/"] +1) [:len $fff]];
  :put ("   comment $fff = $ggg  $hhh") ; :put ("   eee : $eee") ;
  :if (($ccc-$ggg >0) || ($ddd-$hhh >1)) do=\
   {:local iii ($ccc-$ggg);:local jjj ($ddd-$hhh);
    :log info ("   queue   $aaa   upload : $ccc $ggg   download : $ddd $hhh   $iii   $jjj")
    :delay 200ms;
    /queue simple set $i comment=$eee;
   };
  } else=\
  {
  :if (($ccc >5) || ($ddd >5)) do={/queue simple set $i comment=$eee;}
  }
}
}
# queue simple  
现在使用正常,
就是log里,
有些是1位数,有些2位数 有些3位数,
.
请问:
怎么在一位数前面加3个空格,两位数前面加2个空格,,三位数前面加1个空格,


routeros
发表于 2022-3-22 17:53:44 | 显示全部楼层
可以先截圖讓我們看您script目前輸出是長什模樣嗎?
這樣會空白要怎麼加,心裡會比較有個底。

routeros
回复

使用道具 举报

发表于 2022-3-23 08:59:30 | 显示全部楼层
那就要自己计算判断
不行就试试用tab 吧
routeros
回复

使用道具 举报

 楼主| 发表于 2022-3-23 11:00:12 | 显示全部楼层
ros220323.jpg

第一行 log输出6和5,
对应语句
:log info ("   queue   $aaa   upload : $ccc $ggg   download : $ddd $hhh   $iii   $jjj")的upload : $ccc $ggg
昨天希望输出 空格6  空格5
今天看了一下,
将就着用吧

routeros
回复

使用道具 举报

发表于 2022-3-23 11:11:26 | 显示全部楼层
本帖最后由 47771885 于 2022-3-23 11:18 编辑

QQ图片20220323111557.png #方法一字符位数判断
{
:foreach a in={1;22;333} do={
:if ([:len $a] < 2) do={
:set a ("0".$a)
}
:if ([:len $a] < 3) do={
:set a ("0".$a)
}
:put $a
}
}

#方法二数值大小判断
{
:local aaa
:foreach a in={1;22;333} do={
:set aaa $a
:if ($a < 10) do={
:set aaa ("0".$aaa)
}
:if ($a < 100) do={
:set aaa ("0".$aaa)
}
:put $aaa
}
}
方法二
这样也可以就是可能出现意外
#方法二数值大小判断
{
:foreach a in={1;22;333} do={
:if ($a < 10) do={
:set a ("0".$a)
}
:if ($a < 100) do={
:set a ("0".$a)
}
:put $a
}
}




routeros
回复

使用道具 举报

发表于 2022-3-23 12:06:28 | 显示全部楼层
本帖最后由 cspm333 于 2022-3-23 12:12 编辑

0-9輸出是1個字元,10-99是2個字元,100-999是3個字元。
把下面的script加到 :log info ("   queue   $aaa   upload : $ccc $ggg   download : $ddd $hhh   $iii   $jjj")之前:
  1. :foreach v,i in={$ccc;$ggg;$ddd;$hhh} do={
  2. :if ([:len $i]=1) do={:set i "  $i"}
  3. :if ([:len $i]=2) do={:set i " $i"}
  4. :if ($v=0) do={:set ccc $i}
  5. :if ($v=1) do={:set ggg $i}
  6. :if ($v=2) do={:set ddd $i}
  7. :if ($v=3) do={:set hhh $i}
  8. }
复制代码
這樣$ccc,$ggg,$ddd,$hhh輸出便會皆是3個字元


routeros
回复

使用道具 举报

 楼主| 发表于 2022-3-26 22:03:35 | 显示全部楼层
感谢你们的回复
routeros
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-11-21 21:26 , Processed in 0.128123 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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