You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mikrotik脚本无法创建文件原因咨询(RouterOS 7.2.3)

问题原因分析

你的脚本无法创建文件的核心原因是生成文件的逻辑错误:

  • 你用/file print file=$filename where name="";试图生成文件,但where name=""这个过滤条件匹配不到任何文件,RouterOS中/file print file=xxx只有在有符合条件的条目被打印时才会创建文件,空结果不会生成任何文件。
  • 后续的/file set $filename contents=$content;找不到目标文件,自然执行失败。

你的脚本权限(read、write、test)是满足操作要求的,权限不是问题。

修正方案

有两种常用的正确创建文件的方式:

方式1:直接创建空文件再写入内容

:local filename "test.txt"
:local content "This is a test."

# 检查文件是否存在,不存在则创建空文件
:if ([:len [/file find name=$filename]] = 0) do={
    /file add name=$filename
}
# 写入目标内容
/file set $filename contents=$content;

方式2:利用/file print生成文件(确保有输出)

如果一定要用/file print的方式,去掉错误的过滤条件,确保命令能输出内容从而生成文件:

:local filename "test.txt"
:local content "This is a test."

# 打印所有文件列表到目标文件(自动创建文件)
/file print file=$filename;
:delay 1
# 覆盖为目标内容
/file set $filename contents=$content;

注:delay不需要设置5秒,1秒足够文件生成完成。

内容的提问来源于stack exchange,提问作者bielu000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 11:24:16