标题: [文本处理] 请教一个批处理删除自身的问题 [打印本页]
作者: gyue 时间: 2021-6-7 23:45 标题: 请教一个批处理删除自身的问题
求教如何让批处理在运行一定次数后就删除自身?比如运行批处理5后自动就删除了。
作者: winload 时间: 2021-6-8 07:47
这个思路有很多,首先要区分两种情况:
情况1:只在一台电脑上实现运行次数限制
思路:启动时建立一个txt文件里面写入1 每次启动检查此数字大于5则退出
说明:每次启动都要去读取数值,不大于5则 +1写入; 文件不存在则创建;文件放到较为隐蔽的目录
思路:创建注册表的方式 思路同上
情况2:在任何电脑运行都会限制次数
思路:利用修改自身实现。在代码中 注释一行次数数据 每次启动后自动修改覆盖源批处理即可,此功能可以实现不要考虑可行性。另外情况2 还分为两种情况:比如你发给别人 别人只能运行5次,这点没问题吧,但是问题来了,如果别人运行了3次后 再发给另外一个人,那么另外一个人你是想让他只有两次的运行呢还是5次的运行呢?
总而言之 你想实现的效果是可以的,但会增加几十行代码而已 因为我做过这种功能
我还做过只允许在一台电脑运行的批处理 发给别人直接打不开
具体代码没法给你,因为要嵌入这种功能需结合源批处理代码才行
作者: xp3000 时间: 2021-6-8 11:19
- @echo off&setlocal enabledelayedexpansion
-
- echo 其他命令
- echo for /f "delims=" %%a in ('命令') do (echo 显示%%a)
-
-
- for /f "delims=:" %%i in ('findstr /n "^运行次数:" "%~f0"') do set /a "str=%%i"
- for /f "delims=" %%j in ('more +!str! "%~f0"') do set /a n=%%j+1
- echo !n!>>"%~f0"&if !n! equ 5 del /f /s /q "%~f0"&&exit
-
- pause
-
- 运行次数:
- 0
复制代码
0下面有个空行
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |