如何实现关闭.txt文件后自动关闭批处理控制台?
解决方案:关闭TXT文件后自动关闭控制台窗口
当然可以实现这个需求!问题的关键是让批处理脚本等待你用来打开TXT的程序(比如记事本)完全关闭,之后再让控制台窗口自动退出。下面给你具体的实现方法:
核心思路
默认情况下,批处理执行打开文件的命令时,会直接继续执行后续代码(甚至直接结束),不会等待打开文件的程序关闭。我们可以用start /wait命令来让脚本暂停,直到目标程序退出,之后脚本执行完毕就会自动关闭控制台。
具体修改方案
1. 针对系统默认记事本的情况
假设你用系统自带的记事本打开TXT文件,把你打开文件的命令替换成下面的格式:
:: 替换成你的TXT文件路径,记得用引号包裹避免空格问题 start /wait notepad.exe "%name%\%aa%_1.txt"
执行这条命令后,批处理会暂停,直到你关闭记事本窗口,之后脚本会继续执行剩余代码(如果有的话),执行完后控制台就会自动关闭。如果脚本后面没有其他代码,也可以在这条命令后加exit强制退出:
start /wait notepad.exe "%name%\%aa%_1.txt" exit
2. 针对其他编辑器的情况
如果你用的是Notepad++这类第三方编辑器,只需要指定编辑器的完整路径即可,同样用start /wait:
start /wait "C:\Program Files\Notepad++\notepad++.exe" "%lokalizacja_a%\%bb%_2.txt"
额外小提示
- 你的脚本里有个小笔误:
md %lok_d%应该是md %loc_d%吧?建议修正一下避免创建错误的文件夹。 - 所有涉及路径的变量(比如
%loc_a%、%name%)最好都用引号包裹,比如md "%loc_a%",防止路径里有空格导致命令执行失败。
整合到你的脚本示例
修改后的脚本片段大概是这样:
@echo off call "%~dp0\variables.cmd" /b %disk%: cd / echo Creating folders md "%loc_a%" md "%loc_b%" md "%loc_c%" md "%loc_d%" :: 修正了笔误 md "%loc_e%" md "%loc_f%" echo Folders created echo %name% > "%name%\%aa%_1.txt" echo %aa% > "%lokalizacja_a%\%bb%_2.txt" :: 等待记事本关闭后再退出 start /wait notepad.exe "%name%\%aa%_1.txt" exit
这样设置后,当你关闭打开的TXT文件时,控制台窗口就会自动关闭啦!
内容的提问来源于stack exchange,提问作者Fei
相关产品推荐
相关产品推荐

