获取可执行程序(.exe)完整路径

:::::usage: getPathOfProgram.bat PROGRAM

:::::Result: output pathOfProgram

@echo off

setlocal enabledelayedexpansion

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::if havenot the first parameter,output the Usage and exit with the exitcode 1

if [%1] equ [] (

call :showHelp %0

exit /b 1

)

if [%1] equ [/?] (

call :showHelp %0

exit /b 1

)

set pathOfAllProgram=%temp%\pathOfAllProgram

:\\\flush cache file

if [%1] equ [/f] (

if exist !pathOfAllProgram! (

del !pathOfAllProgram! && echo flush cache successfully

) else (

echo No cache file,donnot need to flush.

)

exit /b 0

)

::get program.exe

set pro=%1.exe

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:::find gived program‘s path from reg,find reg path:  regPath=hklm\software\microsoft\windows\currentversion\app paths\

set regPath=hklm\software\microsoft\windows\currentversion\app paths\

::set random file to store outputfile

set tempfile=%temp%\%time::=_%

::find gived program path from reg

reg query "%regPath%%pro%" 2>nul | find /i "%pro%"  >> %tempfile%

if %errorlevel% equ 0 (

for /f "skip=1 tokens=1,2*" %%a in (%tempfile%) do set pathOfProgram=%%c

echo !pathOfProgram!

del %tempfile%

exit /b 0

)

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::find gived program‘s path from all disk

::%temp%\pathOfAllProgram store all EXE file of this computer

::if havenot this file,it means havenot collect all EXE files in this computer,then excute underside code to collect all excute files,else find gived EXE file in %temp%\pathOfAllProgram

::collect EXE files in each drive

if not exist !pathOfAllProgram! (

for /f "tokens=* skip=1" %%a in (‘Wmic Logicaldisk Where "DriveType=3" Get Name‘) do (

call :listFiles %%a

)

)

for /f "skip=2 tokens=*" %%a in (‘find /i "\%1.exe" !pathOfAllProgram!‘) do (

if [%%a] neq [] set pathOfProgram=%%a

echo !pathOfProgram!

exit /b 0

)

goto :eof

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:listFiles

:::give this label a parameter: drive\

:::for example:  call :listFiles c:\

:::the label will collect all EXE files in gived drive,and store all files to %temp%\pathOfAllProgram

if [%1] neq [] (

for /r %1\ %%a in (*.exe) do echo %%a >> !pathOfAllProgram!

)

goto :eof

:showHelp

echo 获取指定可运行程序的完整路径

echo.

echo Usage:

echo     %1 PROGRAM

echo     %1 /f           刷新缓存文件,重新查找所有可执行文件

echo.

goto :eof

时间: 2024-10-07 10:38:05

获取可执行程序(.exe)完整路径的相关文章

四种方法获取可执行程序的文件路径(.NET Core / .NET Framework)

原文:四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 本文介绍四种不同的获取可执行程序文件路径的方法.适用于 .NET Core 以及 .NET Framework. 本文内容 使用程序集信息获取 使用应用程序域信息获取 使用进程信息获取 使用命令行参数获取 总结靠谱的方法 另外,关于以上方法的性能对比,你可以参阅林德熙的博客:[dotnet 获取路径各种方法的性能对比](https://blog.lindexi.com/post/dotnet-%E8%

Linux下获取可执行程序的绝对路径

编写的程序中如果需要读取配置文件,或者需要输出log文件打印日志,或者读取其他文件的时候会出现一个问题: 可执行程序在读取文件路径的时候使用什么路径? 我们一般项目的结构就是: project/ bin/        可执行程序位置 conf/       配置文件位置 log/         日志文件位置 include/   头文件位置 src/         源文件位置 obj/         临时工程文件位置,即.o 文件 other/      其他一些文件 所以在写程序的时候

获取当前页面完整路径的方法:

<?php function getFullUrl(){ # 解决通用问题 $requestUri = ''; if (isset($_SERVER['REQUEST_URI'])) { #$_SERVER["REQUEST_URI"] 只有 apache 才支持, $requestUri = $_SERVER['REQUEST_URI']; } else { if (isset($_SERVER['argv'])) { $requestUri = $_SERVER['PHP_S

js获取input file完整路径的方法

function getPath(){  //判断浏览器  var Sys = {};  var obj = document.getElementById("headImg");  var viewer = document.getElementById("viewImg");  var ua = navigator.userAgent.toLowerCase();   var s;   (s = ua.match(/msie ([\d.]+)/)) ? Sys.

js获取file控件的完整路径

1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html > 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; c

C# 获取程序运行时路径

?  前言 开发中,很多时候都需要获取程序运行时路径,比如:反射.文件操作等..NET Framework 已经封装了这些功能,可以很方便的使用. 1.   可使用类 1.   System.AppDomain,程序集:mscorlib.dll. 2.   System.Environment,程序集:mscorlib.dll. 3.   System.IO.Directory,程序集:mscorlib.dll. 4.   System.Reflection.Assembly,程序集:mscor

获取当前程序的路径

获取当前程序所在路径文件1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName-获取模块的完整路径. 2. System.Environment.CurrentDirectory-获取和设置当前目录(该进程从中启动的目录)的完全限定目录. 3. System.IO.Directory.GetCurrentDirectory()-获取应用程序的当前工作目录.这个不一定是程序从中启动的目录啊,有可能程序放在C:\ww

驱动层得到进程的完整路径

在得到进程EProcess之后,对于进程完整路径的获得一般有两种方法,一种是访问的进程的PEB结构,在PEB结构中保存有进程的完整路径,另一种方法就是采用访问_FILE_OBJECT的方法. 访问PEB的方法便存在线程靠挂的问题,因为运行于Ring0层的线程是无法去访问用户地址空间的,需要将线程暂时靠挂到目标呢进程,进而去访问进程的PEB结构.我一般都采用的访问_FILE_OBJECT的方法,避免了线程的靠挂问题,而且访问peb的方法会存在一个问题:如果想要进行进程拦截,在进程未启动之前就阻止进

javascript中外部js文件取得自身完整路径得办法

原文:javascript中外部js文件取得自身完整路径得办法 有时候我们需要引入一个外部js文件,这个js文件又需要用到自己的路径或者是所在的目录,别问怎么又这么变态的需求,开发做久了各种奇葩需求也就有了! 有人第一时间想到的是location.href,可是哥哥,那个引用页面的路径啊.比如a.html: <html> <script src="/b/c.js"></script> </html> 这样的话我们用location.hre