首页 > 其他分享 >用c实现:编译出来的可执行文件运行完成后删除自己

用c实现:编译出来的可执行文件运行完成后删除自己

时间:2023-06-05 21:22:56浏览次数:32  
标签:可执行文件 文件 bat exe 删除 文件名 批处理 编译 运行

没办法。可执行文件和bat脚本文件不一样,它运行时会被加锁,无法获取写权限。
原由:
因为每次编译一个c文件后都会生成一个exe文件,占用了我的视野资源,所以我每次都要定期运行一个批处理脚本来清理这些文件。
于是我就想,exe文件自己不是也有运行权限吗,它能不能自己获取自己的写权限在执行完任务后将自己删除呢?就像进程一样,运行时才创建用完后删除。
最后采取的方法:
1.在stdio.h中加入
#define cle system("那个批处理脚本的文件名");
2.在VSCode 的用户代码片段的main片段中写入system("那个批处理脚本的文件名");
虽然,没办法实现当前执行的exe文件,但是可以清除之前生成的exe文件,也不错
那个批处理脚本内容如下:

@echo off @REMecho 当前运行的bat文件名:%~nx0 @REMecho 当前运行的bat文件所在的路径:%~dp0 @REMecho 当前运行的bat文件的路径加文件名:%~f0 cd %~dp0 @REM echo Are you sure? @REM pause del /q /a /s /f *.exe del /q /a /s /f *.stackdump del /q /a /s /f tempCodeRunnerFile.c

 

标签:可执行文件,文件,bat,exe,删除,文件名,批处理,编译,运行
From: https://www.cnblogs.com/xuweihui/p/17458945.html

相关文章

  • windows编译freeswitch-1.8.5
    我的windows环境是WIN10编译器是vs2022下载好freeswitch-1.8.5代码解压后直接打开sln文件,开始编译。报错如下:6>libsrtp.lib(crypto_kernel.obj):errorLNK2005:SocketNotificationRetrieveEvents已经在libsrtp.lib(srtp.obj)中定义6>libsrtp.lib(alloc.obj):errorL......
  • DOS创建/删除/描述 windows服务
    1、以管理员运行cmd,输入sccreatetestbinPath=程序路径\xxx.exe,主要“=”后面必须要空格在服务里面查看结果2、设置服务格式:scconfig服务名start=AUTO   (自动) scconfig服务名start=DEMAND (手动) scconfig服务名start=DISABLED(禁用)    注意:等号......
  • 【Exception】maven-compiler-plugin 编译失败集锦
    1JDK明明是1.8为什么说编译环境和运行环境不一致?Whatfuck?JDK明明1.8为什么编译环境变成1.5了?Whatfuck?原因分析:奇怪的是我的机器上只安装了JDK8,为什么还会说不支持diamond和lambda呢?在Google大神的指引下,在MavenCompiler插件介绍里面找到了答案:Alsonotethat......
  • jack-server导致 Android 编译 出现异常
    错误代码如下:[2%39/1330]EnsureJackserverisinstalledandstartedFAILED:/bin/bash-c"(prebuilts/sdk/tools/jack-admininstall-serverprebuilts/sdk/tools/jack-launcher.jarprebuilts/sdk/tools/jack-server-4.8.ALPHA.jar2>&1||(exit0))&am......
  • gcc编译器犯病怎么回事?求大佬看看
    犯病前:犯病后:源码:1#include<stdio.h>2main(){3//printf("欢迎使用电子通讯录\n");4FILE*fp=fopen("naph.txt","r");5charbuf[11];6inti,j,k,n,n2=0,n3=0,i2;7while(fgets(buf,1024,fp)){n++;}8......
  • linux 中删除文本开头至匹配字符之间的内容
     001、[root@PC1test3]#lsa.txt[root@PC1test3]#cata.txt##测试数据3544agfgene4587genedfgiugene887777[root@PC1test3]#sed'1,/gene/{/gene/b;d}'a.txt##删除开头至匹配gene之间的数据gene4587genedfgiugen......
  • openssl编译 windows
    由于需要使用rsa非对称加密开发一个注册机功能,所以需要使用openssl1下载openssl源码,github搜索一下2安装perl3安装nasm并设置为环境变量4使用vsdev命令提示符,加载64位的编译环境5配置openssl6nmake编译7nmaketest7nmakeinstallhttps://github.com/open......
  • 删除额外的空格
    概括该函数接口用于删除输入字符串中额外的空格(多个连续空格将被优化为一个空格)参数str:input&output;传入的非空字符串地址。返回值无注意1、传入的str参数必须为可更改的字符串,不允许传入constchar*类型的字符串2、传入的必须为字符流,绝不允许传入字节流,......
  • 【2023华为云CodeArts Build 实战训练营】云端实战-玩转编译构建
    2023HDC华为开发者大会即将到来,一起跟小智提前体验华为云CodeArtsBuild请注册华为云账号并完成实名认证,实验过程中请使用Chrome浏览器完成相关操作。华为云账号注册步骤请参考:https://support.huaweicloud.com/usermanual-account/zh-cn_topic_0069252244.html实名认证操作步骤请......
  • 实验一 密码引擎-1-OpenEuler-OpenSSL编译
    一、任务详情安装Ubuntu和OpenEuler虚拟机下载最新的OpenSSL源码(1.1版本)用自己的8位学号建立一个文件夹,cd你的学号,用pwd获得绝对路径参考https://www.cnblogs.com/rocedu/p/5087623.html先在Ubuntu中完成OpenSSL编译安装,然后在OpenEuler中重现./config--prefix=..(......