找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20916|回复: 2

[文本处理] 请教一个批处理删除自身的问题

[复制链接]
发表于 2021-6-7 23:45:26 | 显示全部楼层 |阅读模式
求教如何让批处理在运行一定次数后就删除自身?比如运行批处理5后自动就删除了。
发表于 2021-6-8 07:47:59 | 显示全部楼层
这个思路有很多,首先要区分两种情况:
情况1:只在一台电脑上实现运行次数限制
              思路:启动时建立一个txt文件里面写入1 每次启动检查此数字大于5则退出
              说明:每次启动都要去读取数值,不大于5则 +1写入; 文件不存在则创建;文件放到较为隐蔽的目录
              思路:创建注册表的方式 思路同上
情况2:在任何电脑运行都会限制次数
             思路:利用修改自身实现。在代码中 注释一行次数数据 每次启动后自动修改覆盖源批处理即可,此功能可以实现不要考虑可行性。另外情况2 还分为两种情况:比如你发给别人 别人只能运行5次,这点没问题吧,但是问题来了,如果别人运行了3次后 再发给另外一个人,那么另外一个人你是想让他只有两次的运行呢还是5次的运行呢?
总而言之 你想实现的效果是可以的,但会增加几十行代码而已 因为我做过这种功能
我还做过只允许在一台电脑运行的批处理 发给别人直接打不开
具体代码没法给你,因为要嵌入这种功能需结合源批处理代码才行
发表于 2021-6-8 11:19:00 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion

  2. echo 其他命令
  3. echo for /f "delims=" %%a in ('命令') do (echo 显示%%a)


  4. for /f "delims=:" %%i in ('findstr /n "^运行次数:" "%~f0"') do set /a "str=%%i"
  5.     for /f "delims=" %%j in ('more +!str! "%~f0"') do set /a n=%%j+1
  6. echo !n!>>"%~f0"&if !n! equ 5 del /f /s /q "%~f0"&&exit

  7. pause

  8. 运行次数:
  9. 0

复制代码
0下面有个空行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 16:46 , Processed in 0.016850 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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