[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

求教如何让批处理在运行一定次数后就删除自身?比如运行批处理5后自动就删除了。

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

TOP

  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下面有个空行

TOP

返回列表