V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
renshiuu
V2EX  ›  问与答

问一下批处理文件清空 txt 内容上的问题

  •  
  •   renshiuu · 2022-11-11 20:17:55 +08:00 · 1118 次点击
    这是一个创建于 727 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人小白,以下代码都是网上抄得。

    个人因为实际需要,经常需要在 txt 里写入内容、然后分享、然后再删除内容,以上过程由于反复出现而不胜其烦,因此想借助批处理文件的方式实现自动化。

    思路是这样,在对 txt 文件实现定向分享后清空 txt 内容。

    定向分享:在抄了在抄了(指还没建文件夹),好吧,实际上刚刚才想到定向分享是可以连在一起的

    清空 txt:
    @echo off
    for /f "delims=" %%i in ('dir/b "D:\*.txt"') do call :del_ "%%i"
    goto :eof
    :del_
    echo off >D:\%1
    goto :eof

    想问一下上面的代码有没有问题

    然后就是在沙盒里实验清空 txt 时,批处理文件只对 D 盘下的 txt 文件执行此操作,而非对 D 盘下的所有 txt 文件(包括文件夹里的)执行此操作,想问一下这是普遍行为还是个例?
    24 条回复    2022-12-01 13:00:03 +08:00
    wudidada
        1
    wudidada  
       2022-11-11 20:49:44 +08:00
    把 dir/b "D:\*.txt" 换成 dir "d:*.txt" /s/b 试试
    感觉 python 比较适合处理这样的任务,语法也很简单
    renshiuu
        2
    renshiuu  
    OP
       2022-11-11 21:09:54 +08:00
    @wudidada 到处翻了一下,感觉使用 python 的确比较普遍,可总感觉自己好像因为醋而包了一盘饺子
    antness
        3
    antness  
       2022-11-12 01:05:46 +08:00
    @renshiuu 不建议用 python 除非你会 python (指学习成本高了),其次这个需求很好实现,用批处理足够了,感觉用 Quicker 写个脚本动作也快的很
    antness
        4
    antness  
       2022-11-12 01:49:56 +08:00
    对了,为什么要清空内容而不是直接删除在重新创建呢,这样实现还要根方便
    renshiuu
        5
    renshiuu  
    OP
       2022-11-12 11:30:05 +08:00
    @antness 这东西比想象的难,批处理打开蓝牙,选定设备,再分享文件,满头雾水。
    quicker 我只会基础的几个动作,脚本我所知有限,写不出这种复杂的东西。
    空白 txt 是结果,无论是清空内容还是删除重建其实都可以。
    antness
        6
    antness  
       2022-11-12 12:03:25 +08:00
    @renshiuu 其实我应该也有这个需求的,手头的诺基亚好久没玩了,昨天设置个邮箱秘钥输入半天,等下我来研究 quicker 脚本,或许连建 txt 都省了,直接输入框输入,已 txt 分享到诺基亚哈哈
    antness
        7
    antness  
       2022-11-12 16:38:07 +08:00
    研究了一下午,目前进展良好,等我好消息
    renshiuu
        8
    renshiuu  
    OP
       2022-11-12 19:55:28 +08:00
    @antness 6 ,麻烦了,我下午的时候研究着研究着就跑题了,去研究 ftp 去了,目前正在搭建 ftp 服务器,有两种思路,一个是直接使用红米手机上的远程管理,另一个是使用 MT 管理器里的 ftp 功能,看一下 ftp 的效率如何
    antness
        9
    antness  
       2022-11-12 20:53:41 +08:00
    @renshiuu 目前可以实现的功能有:1.电脑选择文件(或多个)一键发送(可选删除) 2.弹出文本框,输入文字一键发送
    antness
        10
    antness  
       2022-11-12 20:55:00 +08:00
    @renshiuu 蓝牙也有 ftb 协议,可以实现一些操作。你系统什么版本
    renshiuu
        11
    renshiuu  
    OP
       2022-11-12 21:06:06 +08:00
    @antness 我系统是 win10 专业版
    antness
        12
    antness  
       2022-11-13 23:07:57 +08:00
    @renshiuu http 我 s://getq 好 uicker.n 像 et/Sharedacti 不能 on?code=发 4ad1b338-67 链接 b0-4d10-6c59-08dac4 干了 a613f3
    写的一般般,看看怎么样
    antness
        13
    antness  
       2022-11-13 23:24:00 +08:00
    刚刚测试发现 bat 文件就发送失败了,浅看了一小好像是因为使用的 obex 协议(好像有点老)对文件类型还有要求,ftp 协议应该可以(早知道就用 ftp 了),刚刚思考了一小感觉可以把动作搞丰富一些,比如在发送的时候选择手机(目前都是在设置里改)等等吧。还有使用之前要下载一个命令行工具,这工具也好老了(2013 )有些命令在 win10 好像都不能用。我忘了写把第一次运行检测工具是否存在的逻辑了,等下更新,检测模块有,在右键菜单设置里,没有会打开官网。
    安装可以改位置,但要保证加入了环境变量,并且手动重启 quicker
    renshiuu
        14
    renshiuu  
    OP
       2022-11-14 12:45:07 +08:00   ❤️ 1
    @antness 大佬 666 ,厉害,测试了一下,可以发送文件,以 txt 发送内容,还能指定设备,真的厉害
    renshiuu
        15
    renshiuu  
    OP
       2022-11-14 12:51:05 +08:00
    @antness 好像有个小 bug ,打开这个动作以后,再按 win+v ,剪贴板会被遮蔽,拖动页面剪贴板也会随之移动,重复几次,有时又没问题,原因不明。
    antness
        16
    antness  
       2022-11-14 12:54:53 +08:00
    @renshiuu 还有别的需求,建议的多提提,我闲的没事就爱鼓捣,为了让设置里的逻辑完美硬是鼓捣了两天,先用循环搞不定,画了流程图才发现得用递归。这算用 quicker 写的第一个程序了,搜获还不少。等今天晚上把注释写明白,把介绍和使用方法做出来,在发布到动作库里,不知道动作库审核难不难过
    antness
        17
    antness  
       2022-11-14 13:01:55 +08:00
    @renshiuu 应该是那个窗口设置了置顶导致的,我考虑的是比如在浏览浏览器时要发送某段文字给手机,如果文字分散在页面需要多次复制粘贴的情况,就把这个文字框设置成置顶的了,没测试用系统的历史剪贴板,感谢你发现地问题我想想怎么解决。目前你可以修改动作(应该可以修改吧)把子动作“发送文本”里的那个窗口的“置顶显示”设置为否应该可以解决,如果依然重现,可能就不是置顶的问题了
    renshiuu
        18
    renshiuu  
    OP
       2022-11-14 13:23:08 +08:00
    @antness 没错,就是置顶的问题,把置顶设置为否就可以解决。其他的我再多测试一下,总之非常感谢。
    renshiuu
        19
    renshiuu  
    OP
       2022-11-17 23:09:33 +08:00
    @antness 用了几天,非常便捷,一键发送真的很快。
    就是能不能再补充一下,添加一个打开蓝牙的子程序,添加一个在菜单打开 /关闭蓝牙的选项,就像 getquicker.net/Sharedaction?code=2cf5e275-a07c-4ea4-97ea-08d8929be5f5 这个动作一样,增加一个打开蓝牙的子程序,非常感谢。
    本来想照猫画虎抄一下,却发现自己力有不逮,两者的目的并不一致,无法混在一个架子里。
    antness
        20
    antness  
       2022-11-18 10:17:39 +08:00
    好的,今晚尽力更新
    antness
        21
    antness  
       2022-11-18 10:23:25 +08:00
    @renshiuu 也可以在运行程序的时候判断蓝牙状态,如果蓝牙关闭,在发送的时候开启,发送完成后关闭(就是保持电脑蓝牙状态,但不影响文件发送),有时间完善一下
    renshiuu
        22
    renshiuu  
    OP
       2022-11-30 14:41:15 +08:00
    @antness 求教,又遇到新问题了,opml 文件发送不出去 https://temp.getquicker.net/597972/d2f2461b3c914fbfa7304df1a5a2e695.htm
    反复测试,发现正常发送 docx 、txt 或 apk 文件都没问题,但若是发送 opml ,会出现 OBEX Error:(0xCF),
    antness
        23
    antness  
       2022-12-01 00:36:16 +08:00
    @renshiuu 由于调用的这个命令行工具比较老,目前使用的是 OBEX 协议传输文件,有部分文件不能传输(应该改个后缀就行了)(但这一点也不方便,即使可以自动化)。这个命令行工具还提供了 ftp 的方式传输文件,但我当时没有使用 ftp 模式(按理来说 ftp 没有文件限制,不过我也没有测试)。上面其实已经说过有这个问题了,以为你没传其他类型文件的需求,就也没改。这个动作貌似也就你你个人在使用我也没太大的兴趣编写 ftp 模式得了。(主要我也感觉这个命令行工具有一些旧了,不太好使用,比如部分操作响应太慢、操作无效等等。可能有人编写更好的蓝牙命令行工具,不过我也没找过,如果你找到更有意思的实现方式我或许感兴趣在写写动作)请问你传 opml (会报错的文件)多吗,如果使用频繁我就加个后缀绕过(应该是检测后缀的)功能
    renshiuu
        24
    renshiuu  
    OP
       2022-12-01 13:00:03 +08:00
    @antness 哦,是这样啊,这个命令行工具原来这么老了,难怪用不了。主要是想传输一些小文件,但不想用 QQ 之类的软件,太麻烦了。opml 文件用的不多,但估计各种类型的文件以后会不少用,麻烦你再加一个后缀绕过功能,感激不尽。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3488 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 00:44 · PVG 08:44 · LAX 16:44 · JFK 19:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.