用c实现:编译出来的可执行文件运行完成后删除自己
没办法。可执行文件和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
方法二:
VSCode在Windows的cygwin64下的配置:
ctrl+shift+p-> 搜索用户settings.json-》选择打开用户JSON-》在该settings.json的"code-runner.executorMap"
第一层大括号中加入:
"c": "cd $dir ; if ($?) { gcc $fileName -o $fileNameWithoutExt } ; if ($?) {./$fileNameWithoutExt} ; rm $fileNameWithoutExt.exe",
"cpp": "cd $dir ; if ($?) { g++ $fileName -o $fileNameWithoutExt } ; if ($?) {./$fileNameWithoutExt} ; rm $fileNameWithoutExt.exe",
VSCode在Ubuntu20.02中运行代码的的配置
ctrl+shift+p-> 搜索用户settings.json-》选择打开用户JSON-》在该settings.json的"code-runner.executorMap"第一层大括号中加入:
"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt && rm $fileNameWithoutExt",
"c++": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt && rm $fileNameWithoutExt",
其他方法见:
其他方法见:
https://tieba.baidu.com/p/8446703124?pid=147777312203&cid=0#147777312203
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库