[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]如何获取指定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
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2
一个人,征服了自己,也就征服了世界。

for /f "delims=" %%j in ("C:\app\GoogleChrome_65.0.3325.162\MyChrome.exe\..")do (
if /i "%%~dpj"=="%%~dj\" (Echo,根目录)else (
  echo,%%~nxj
)
)
1

评分人数

这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

  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. )
复制代码
1

评分人数

    • y169168712: 虽然看不懂,但可以很好的解决了我的问题。技术 + 1

TOP

返回列表