如何检查和正确的用户输入时,他省略扩展名.exe杀掉进程? [英] How to check and correct user input when he omit the extension .exe to kill the process?

查看:95
本文介绍了如何检查和正确的用户输入时,他省略扩展名.exe杀掉进程?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这样一批杀死由用户输入,当然一些过程和它的作品5/5时,例如用户输入的的calc.exe 的扩展,但我现在的问题是,以改善这批以用户是否省略扩展添加这个程序会自动添加的 .exe文件例如计算器无后缀名的 .exe文件将无法正常工作

I have this batch to kill some process typed of course by the user and it works 5/5 when the user for example typed Calc.exe with the extension, but my issue now is to improve this batch in order to add automatically with this program if the user has omitted to add extension .exe like Calc without extension .exe will not work.

@Echo off & cls
Mode con cols=72 lines=7
Set TmpFile=TmpFile.txt
Set Resultat=KillResult.txt
If Exist %TmpFile% Del %TmpFile%
If Exist %Resultat% Del %Resultat%
::********************************************************************************************
:Main
Title Process Killer by Hackoo 2015
cls & color 0B
echo.
echo                Quel(s) processus voulez-vous fermer ?
echo.
set/p "process=Entrer le(s) nom(s) de(s) processus> "
cls & color 0C
Title Killing "%process%" ...
echo.
echo                       Killing "%process%" ...
echo.
echo %date% *** %time% >> %TmpFile%
For %%a in (%process%) Do Call :KillProcess %%a
Cmd /U /C Type %TmpFile% > %Resultat%
Start %Resultat%
echo.
Goto :Main
::*********************************************************************************************
:KillProcess
Taskkill /IM "%~1" /F >> %TmpFile% 2>&1
echo ***************************************************************************** >> %TmpFile% 
::*********************************************************************************************

所以我很注重这一块code,但没有成功的!
这个我的小试:

So i'm focusing on this piece of code but no success ! this my little try :

:KillProcess
Set str=%~1
set str=%str:~-4%
echo.%str%
pause
if %str%==".exe" (Taskkill /IM "%~1" /F >> %TmpFile% 2>&1) || (Taskkill /IM "%~1.exe" /F >> %TmpFile% 2>&1)

因此​​,如何做到这一点在批处理?

So how to do that in batch ?

感谢您!

推荐答案

如果您的文件从来没有任何其他分机比 .exe文件,您可以使用%〜n1.exe来获得与 .exe文件。

If your files have never any other extension than .exe, you can use "%~n1.exe" to get the filename with .exe.

%〜N1 只是没有扩展名的文件名。不是添加 .exe文件,并把报价周围的情况下,文件名包含空格。

%~n1 is just the filename without extension. Than add .exe, and put quotes around it in case the filename contains a space.

但如果你的可执行文件是这将失败 example.program.exe 和用户输入 example.program 。在这种情况下的结果%〜n1.exeexample.exe。为了避免这种情况,你必须检查是否扩展名 .exe文件。您可以使用%〜X1 来得到公正的分机。

But this will fail if your executable is example.program.exe, and the user entered example.program. In this case the result of "%~n1.exe" will be "example.exe". To avoid that, you have to check if the extension is .exe. You can use %~x1 to get just the extension.

又见命令行参数(参数)了解详情。

这篇关于如何检查和正确的用户输入时,他省略扩展名.exe杀掉进程?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆