找回密码
 注册
关于网站域名变更的通知
查看: 2119|回复: 18
打印 上一主题 下一主题

axlShell如何执行变量组合路径下的BAT?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-10-2 21:03 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
本帖最后由 85654202 于 2020-10-2 21:11 编辑

pcbname = axlCurrentDesign();获取pcb文件名     

axlOSFileCopy(strcat(axlGetVariable("HOME") "/pcbenv/cmd/ART_MOVE.bat") strcat("./" pcbname "_\264\362\260\345\327\312\301\317/gerber/ART_MOVE.bat") nil)        

请教一下,如何运行  ./" pcbname "_\264\362\260\345\327\312\301\317/gerber 目录下的 ART_MOVE.bat 文件

试下以下几个方法都不行,不知道是哪里语法错了
1、
        a = axlGetVariable(".")
   filepath = strcat(a "\\" pcbname "_\264\362\260\345\327\312\301\317\\gerber\\ART_MOVE.bat")
   shell(filepath)

2、
axlShell(system (strcat("./" pcbname "_\264\362\260\345\327\312\301\317/gerber/ART_MOVE.bat")) nil)        

大家帮看一下谢谢





  • TA的每日心情
    开心
    2022-5-6 15:29
  • 签到天数: 34 天

    [LV.5]常住居民I

    推荐
    发表于 2020-10-9 12:26 | 只看该作者
    本帖最后由 leilei4908 于 2020-10-9 12:28 编辑

    因为bat里的指令用的相对路径,如果是双击,那么起始路径就是  bat  文件所在文件夹
    通过system axlShell shell axlHttp等skill指令 ,那么起始路径就是  brd  文件所在文件夹


    所以执行结果完全不一样了
    这样解释,应该能理解了吧
    头像被屏蔽
  • TA的每日心情
    开心
    2025-1-23 15:05
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    2#
    发表于 2020-10-6 19:18 | 只看该作者
    提示: 作者被禁止或删除 内容自动屏蔽

    该用户从未签到

    3#
     楼主| 发表于 2020-10-6 20:25 | 只看该作者
    aarom 发表于 2020-10-06 19:18:18
    本帖最后由 aarom 于 2020-10-6 19:40 编辑

    shell("%HOME%/pcbenv/cmd/ART_MOVE.bat")


    这个不是我要的路径哦

    “来自电巢APP”

    该用户从未签到

    4#
     楼主| 发表于 2020-10-6 20:27 | 只看该作者
    aarom 发表于 2020-10-06 19:18:18
    本帖最后由 aarom 于 2020-10-6 19:40 编辑

    shell("%HOME%/pcbenv/cmd/ART_MOVE.bat")


    ./" pcbname "_\264\362\260\345\327\312\301\317/gerber 目录下的 ART_MOVE.bat 文件,,,这个才是我想要的路径,变量路径难搞

    “来自电巢APP”

    该用户从未签到

    5#
    发表于 2020-10-7 19:14 | 只看该作者
    請參考以下
    axlShell指令改為axlShell("system command") 雙引號包含到system
    我測試簡化後端指令,好像沒法處理"./"這個相對路徑,把ART_MOVE.bat搬到和設計檔同個目錄比較好處理
    或利用axlGetDrawingName()處理後取得設計檔的絕對路徑,再與自訂的路徑合併

    点评

    不是很理解可以给个例示吗,万分感谢  详情 回复 发表于 2020-10-8 10:43
    不是很理解可以给个例示吗,万分感谢  详情 回复 发表于 2020-10-7 19:40

    该用户从未签到

    6#
     楼主| 发表于 2020-10-7 19:40 | 只看该作者
    ginooolu 发表于 2020-10-07 19:14:27
    請參考以下
    axlShell指令改為axlShell("system command") 雙引號包含到system
    我測試簡化後端指令,好像沒法處理"./"這個相對路徑,把ART_MOVE.bat搬到和設計檔同個目錄比較好處理
    或利用axlGetDrawingName()處理後取得設計檔的絕對路徑,再與自訂的路徑合併


    不是很理解可以给个例示吗,万分感谢

    “来自电巢APP”

    该用户从未签到

    7#
     楼主| 发表于 2020-10-8 10:43 | 只看该作者
    ginooolu 发表于 2020-10-7 19:14
    請參考以下
    axlShell指令改為axlShell("system command") 雙引號包含到system
    我測試簡化後端指令,好像 ...

    不是很理解可以给个例示吗,万分感谢
  • TA的每日心情
    开心
    2022-5-6 15:29
  • 签到天数: 34 天

    [LV.5]常住居民I

    8#
    发表于 2020-10-8 11:33 | 只看该作者
    本帖最后由 leilei4908 于 2020-10-8 11:39 编辑

    你是要获取当前文件夹的完整路径吧?getWorkingDir()
    执行bat也可以用axlHttp()指令

    该用户从未签到

    9#
     楼主| 发表于 2020-10-8 13:45 | 只看该作者
    本帖最后由 85654202 于 2020-10-8 13:53 编辑
    leilei4908 发表于 2020-10-8 11:33
    你是要获取当前文件夹的完整路径吧?getWorkingDir()
    执行bat也可以用axlHttp()指令


                        pcbname = axlCurrentDesign();获取pcb文件名        
    ./" pcbname "_\264\362\260\345\327\312\301\317/gerber 目录下的 ART_MOVE.bat 文件

    我是想通过PCB 的名字获取到这个PCB当前所在的目录(AZ320-H-TEST_V10_010_20200930_1356_打板资料)的全称,然后运行(AZ320-H-TEST_V10_010_20200930_1356_打板资料》gerber》ART_MOVE.bat )ART_MOVE.bat 这个BAT,









    点评

    pcbFolder = getWorkingDir() CB所在文件夹 pcbName = axlCurrentDesign()[/backcolor] CB文件名 batFile = strcat(pcbFolder "/" pcbName "/ART_MOVE.bat") ;bat文件完整路径 axlHttp(batFile) ;  详情 回复 发表于 2020-10-8 15:30
    获得PCB所在文件夹路径 getWorkingDir() 获得PCB完整路径(包括文件名和后缀) axlGetDrawingName() 你试下这两个,是不是你要的  详情 回复 发表于 2020-10-8 15:06
  • TA的每日心情
    开心
    2022-5-6 15:29
  • 签到天数: 34 天

    [LV.5]常住居民I

    10#
    发表于 2020-10-8 15:06 | 只看该作者
    85654202 发表于 2020-10-8 13:45
    pcbname = axlCurrentDesign();获取pcb文件名        
    ./" pcbname "_\264\362\ ...

    获得PCB所在文件夹路径
    getWorkingDir()


    获得PCB完整路径(包括文件名和后缀)
    axlGetDrawingName()

    你试下这两个,是不是你要的
  • TA的每日心情
    开心
    2022-5-6 15:29
  • 签到天数: 34 天

    [LV.5]常住居民I

    11#
    发表于 2020-10-8 15:30 | 只看该作者
    本帖最后由 leilei4908 于 2020-10-8 15:32 编辑
    85654202 发表于 2020-10-8 13:45
    pcbname = axlCurrentDesign();获取pcb文件名        
    ./" pcbname "_\264\362\ ...

    pcbFolder = getWorkingDir()   ;  PCB所在文件夹
    pcbName = axlCurrentDesign()   ;  PCB文件名
    batFile = strcat(pcbFolder "/" pcbName "_\264\362\260\345\327\312\301\317/gerber/ART_MOVE.bat")   ;  bat文件完整路径
    axlHttp(batFile)   ;  执行bat文件

    该用户从未签到

    12#
     楼主| 发表于 2020-10-8 16:21 | 只看该作者
    本帖最后由 85654202 于 2020-10-8 16:22 编辑
    leilei4908 发表于 2020-10-8 15:30
    pcbFolder = getWorkingDir()   ;  PCB所在文件夹
    pcbName = axlCurrentDesign()   ;  PCB ...

    BAT  还是跑不起来(我偿试去掉中文还是跑不起来) 实在没办法了,上文件,里面带有需要运行的BAT   由于文件太大  发网盘连接地址:链接:https://pan.baidu.com/s/1g6-lEkF1PdwEnIIe7-K5WQ

    提取码:hzag

    万分感谢

    点评

    如果需要自动创建这个文件夹,可以用下面的自定义函数 createPath(tFolder) ;创建目标文件夹 procedure(createPath(path) ;直接创建多级文件夹 let((strs) path = axlOSSlash(path) strs = parseStrin  详情 回复 发表于 2020-10-9 11:51
    看你的bat文件,目的只是把上上级文件夹里的所有.art .rou .drl .ipc移动到 打板资料 文件夹里 直接给你写个相同功能的skill吧 pcbFolder = getWorkingDir() pcbName = axlCurrentDesign() tFolder = strcat(pcb  详情 回复 发表于 2020-10-9 11:35
  • TA的每日心情
    开心
    2022-5-6 15:29
  • 签到天数: 34 天

    [LV.5]常住居民I

    13#
    发表于 2020-10-9 11:35 | 只看该作者
    本帖最后由 leilei4908 于 2020-10-9 12:11 编辑
    85654202 发表于 2020-10-8 16:21
    BAT  还是跑不起来(我偿试去掉中文还是跑不起来) 实在没办法了,上文件,里面带有需要运行的BAT   由于 ...

    看你的bat文件,目的只是把上上级文件夹里的所有.art .rou .drl .ipc移动到当前文件夹里(也就是pcbFolder中的这些文件,移动到 打板资料/gerber 里)
    直接给你写个相同功能的skill吧
    pcbFolder = getWorkingDir()
    pcbName = axlCurrentDesign()
    tFolder = strcat(pcbFolder "/" pcbName "_\264\362\260\345\327\312\301\317/gerber/")
    foreach(file getDirFiles(pcbFolder)
        ext = car(last(parseString(lowerCase(file) ".")))
        when(ext == "art" || ext == "rou" || ext == "drl" || ext == "ipc"
            sfile = strcat(pcbFolder "/" file)
            tfile = strcat(tFolder "/" file)
            axlOSFileMove(sfile tfile)
        )
    )
  • TA的每日心情
    开心
    2022-5-6 15:29
  • 签到天数: 34 天

    [LV.5]常住居民I

    14#
    发表于 2020-10-9 11:51 | 只看该作者
    本帖最后由 leilei4908 于 2020-10-9 12:12 编辑
    85654202 发表于 2020-10-8 16:21
    BAT  还是跑不起来(我偿试去掉中文还是跑不起来) 实在没办法了,上文件,里面带有需要运行的BAT   由于 ...

    如果需要自动创建这个文件夹,可以用下面的自定义函数
    createFolder(tFolder)    ;创建目标文件夹

    procedure(createFolder(path)   ;直接创建多级文件夹
    let((strs)
            path = axlOSSlash(path)
            strs = parseString(path "/")
            path = nthelem(1 strs)
            for(i 2 length(strs)
                    path = strcat(path "/" nthelem(i strs))
                    unless(isDir(path) errset(createDir(path)))
            )
            isDir(path)
    ))

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

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-9-11 09:06 , Processed in 0.156250 second(s), 34 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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