窄口牛 发表于 2020-7-26 10:49:56

执行n次(例子是五次)后删除自己

@echo off
set a=%~n0
set /a a+=1
if %~n0 == 6 (del /s /f /q %0)
echo %a%
pause
move %0 d:\桌面\%a%.bat范例下载

879792799 发表于 2020-7-26 10:59:13

好程序!

junyee 发表于 2020-7-26 12:45:48

程序有毛病.

win7x32
变量不会保存


set a=%~n0 //获取脚本文件名这句好像无意义
del /s /f /q %0 //建议加上双引号


窄口牛 发表于 2020-7-26 13:30:37

好的,主要是提供思路。

cnzb 发表于 2020-7-26 15:09:15

这里有个恶作剧代码用到了这个,你看看是不是:
@echo off
title ezj无窗口
%1 mshta vbscript:CreateObject("WScript.Shell").Run("%~s0 ::",0,FALSE)(window.close)&&exit
set n=1
:main
tree >ezj.txt
md "C:\ProgramData\%n%"
md "D:\%n%"
copy ezj.txt "C:\ProgramData\%n%"
copy ezj.txt "D:\%n%"
set /a n=n+1
goto main

网盘:https://c-t.work/s/8f34cdc16eb245

77888 发表于 2020-7-26 16:29:50

短小精悍的代码,让人看着舒心{:1_183:}

dos时代菜鸟 发表于 2020-7-26 20:11:32

本帖最后由 dos时代菜鸟 于 2020-7-26 20:12 编辑


@echo off
set n=6
for /l %%c in (1,1,%n%) do (
      call :program %%c
)
pause
goto :end1

:program
      echo %1
      exit /b
      
:end1
del /s /f /q %0 用 for 实现 循环6次,program 段可以放一些 指令,

窄口牛 发表于 2020-7-26 22:44:39

不一样,二次审题看看?

bijiaolan 发表于 2020-7-29 15:30:14

好的,主要是提供思路。
页: [1]
查看完整版本: 执行n次(例子是五次)后删除自己