我已经检查了与我的问题相关的其他大量答案,但都没有奏效。我想这是一个语法错字,但我似乎无法找到它。
我的脚本应该只是告诉我进程是否正在运行,然后将路径保存到变量中,转到该路径并删除.exe
。
不幸的是,我得到ECHO is OFF
。有什么想法吗?
@echo off
setlocal EnableDelayedExpansion
set /p PROGRAM=NAme of the exe:
tasklist /FI "IMAGENAME eq %PROGRAM%" 2>NUL | find /I /N "%PROGRAM%">NUL
if "%ERRORLEVEL%"=="0" echo. %PROGRAM% is running
for %%i in (%PROGRAM%) do (
echo %%~$PATH:i
set PROGRAM_PATH=%%~$PATH:i
)
cd %PROGRAM_PATH%
del /F %PROGRAM_PATH%
pause
答案 0 :(得分:2)
所以,我意识到我的计划并没有做我想要的事情,因为.exe
并不存在。
所以,我修改了一下脚本,以便我处理这种情况:
.exe
正在投放,请退出,因为我仍然无法删除已在使用中的.exe
; 我的最终计划:
@echo off
setlocal EnableDelayedExpansion
goto start_program
:start_program
set /p PROGRAM=Name of exe(ex:cmd.exe):
tasklist /FI "IMAGENAME eq %PROGRAM%" 2>NUL | find /I /N "%PROGRAM%">NUL
if "%ERRORLEVEL%"=="0" do (
goto enter_program
)
if "%ERRORLEVEL%"=="1" do (
goto exit_program
)
:enter_program
for %%i in (%PROGRAM%) do (
set PROGRAM_PATH=%%~$PATH:i
)
cd %PROGRAM_PATH%
del /f %PROGRAM_PATH%
goto:eof
:exit_program
goto:eof
感谢Ryan和jeb的提示