找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26516|回复: 2

[文件操作] [已解决]如何获取指定exe程序所在的文件夹名/目录名称

[复制链接]
发表于 2018-3-24 19:00:41 | 显示全部楼层 |阅读模式
本帖最后由 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
复制代码

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2018-3-24 19:58:36 | 显示全部楼层
for /f "delims=" %%j in ("C:\app\GoogleChrome_65.0.3325.162\MyChrome.exe\..")do (
if /i "%%~dpj"=="%%~dj\" (Echo,根目录)else (
  echo,%%~nxj
)
)

评分

参与人数 1技术 +1 收起 理由
y169168712 + 1 感谢!

查看全部评分

发表于 2018-3-25 11:30:21 | 显示全部楼层
  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技术 +1 收起 理由
y169168712 + 1 虽然看不懂,但可以很好的解决了我的问题。

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 04:56 , Processed in 0.016973 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表