Board logo

标题: [文件操作] [已解决]如何获取指定exe程序所在的文件夹名/目录名称 [打印本页]

作者: y169168712    时间: 2018-3-24 19:00     标题: [已解决]如何获取指定exe程序所在的文件夹名/目录名称

本帖最后由 y169168712 于 2018-3-25 14:06 编辑

如何提取EXE可执行文件上级目录名?
路径是C:\app\GoogleChrome_65.0.3325.162\MyChrome.exe
我想提取EXE可执行文件上级目录名,也就是GoogleChrome_65.0.3325.162
应该怎么办呢?


本来是想提取exe可执行文件上级目录名作为快捷方式文件名使用的。
后来自己做了一个搜索文件名创建快捷方式然后改名的批处理,但是这个批处理对有空格的EXE可执行文件改名的时候出错。
下面给出我写的批处理和我所用到的命令行工具,


NirCmd 2.81
http://www.onlinedown.net/soft/44565.htm
NirCmd v2.75帮助-中文版
http://down.51cto.com/data/1976412


name.txt,name改名.txt,这两个文件和批处理放在一起

name.txt文件里面是没有带exe的文件名:
advanced_ip_scanner
aida64
"Cheat Engine"
CloudMusic
cpuz_x64
DiskInfoX64
devcppPortable
EditPlusPortable
EPUB阅读器
FileLocatorPro
filezilla
FirefoxPortable
GM9
Homedale
HostsEditor


name改名.txt文件里面是改名,用(逗号,)隔开:
advanced_ip_scanner,扫描局域网地址advanced_ip_scanner
aida64,硬件检测aida64
Cheat Engine,游戏内存修改CheatEngine
CloudMusic,网易云音乐CloudMusic
cpuz_x64,处理器检测cpuz_x64
DiskInfoX64,硬盘检测DiskInfoX64
devcppPortable,编程工具devcppPortable
EditPlusPortable,文本编辑器EditPlusPortable
EPUB阅读器,EPUB阅读器
FileLocatorPro,文件搜索工具FileLocatorPro
filezilla,ftp客户端FileLocatorPro
FirefoxPortable,火狐FirefoxPortable
GM9,游戏内存修改器GM9
Homedale,wifi网络查看Homedale
HostsEditor,host编辑器HostsEditor

批处理文件:
  1. @echo
  2. rem 删除快捷方式
  3. nircmd execmd RD /s /q ~$folder.desktop$\app
  4. rem 生成快捷方式
  5. FOR /F "delims=" %%i IN (name.txt) DO (
  6. forfiles /p . /M %%i.exe /S /C "cmd /c nircmd shortcut @path ~$folder.desktop$\app @fname"
  7. )
  8. rem 改名
  9. set 路径1=%USERPROFILE%\Desktop\app
  10. FOR /F "delims=, tokens=1,2" %%a IN (name改名.txt) DO (
  11. FOR /R %路径1% %%c IN (%%a) DO (
  12. ren "%%c.lnk" "%%b.lnk"
  13. ))
  14. pause
复制代码

作者: /zhqsystem/zhq    时间: 2018-3-24 19:58

for /f "delims=" %%j in ("C:\app\GoogleChrome_65.0.3325.162\MyChrome.exe\..")do (
if /i "%%~dpj"=="%%~dj\" (Echo,根目录)else (
  echo,%%~nxj
)
)
作者: yhcfsr    时间: 2018-3-25 11:30

  1. for /f "delims=" %%a in ("C:\app\GoogleChrome_65.0.3325.162\MyChrome.exe")do (
  2. setlocal enabledelayedexpansion
  3. set "path=%%~dpa"&&set "path=!path:~0,-1!"
  4. for /f "delims=" %%b in ("!path!")do echo %%~nb
  5. endlocal
  6. )
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2