无法创建批处理文件来启动第二个 .bat

无法创建批处理文件来启动第二个 .bat

我有这个代码

@echo off
cd c:\windows\System32
for /f "skip=3 tokens=1" %%i in ('TASKLIST /FI "USERNAME eq %userdomain%\%username%"     /FI "STATUS eq running"') do (
if not "%%i"=="svchost.exe" (
if not "%%i"=="cmd.exe" (
if not "%%i"=="skype.exe" (
if not "%%i"=="origin.exe" (
if not "%%i"=="chrome.exe" (
echo.
taskkill /f /im "%%i" 
echo.
)
)
)
)
)
) 
pause

是的,我希望它%~dp0start.bat在所有操作结束时运行。怎么做?我试过下面的代码,但它不起作用。

pause
goto start

:start
%~dp0start.bat

答案1

您对所尝试做的事情的描述最终让我明白了问题所在(可能这就是为什么您应该在问题本身中包含尽可能多的细节)。

我们甚至不要去讨论为什么您是否正在执行此操作,以及是否应该关闭 dwm.exe 等进程(桌面窗口管理器)、explorer.exe等。

你的问题是你正在运行一个批处理文件尝试执行命令强行关闭 conhost.exe 后(控制台窗口主机

你现在明白为什么这相当于无法访问的代码编译器错误?

答案2

我大胆猜测一下,因为大约一年前我使用过 cmd.exe……

在命令前面加上“pause”会破坏文件,请尝试在 dpstart.bat 后面再加一个“pause”。由于最后没有停止命令,它会跳过最后一个命令之后的所有内容。

答案3

要启动该文件,请输入:

start %~dp0start.bat

如果 %~dp0start.bat 不在您尝试启动它的文件所在的目录中,则假设 %~dp0start.bat 位于 C:\Users\Adam\file\

类型:

cd "C:\Users\Adam\file\"

start %~dp0start.bat

希望我能帮助你

相关内容