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

[文件操作] 批处理如何使用相对路径执行外部程序?

[复制链接]
发表于 2016-1-26 16:12:10 | 显示全部楼层 |阅读模式
[已解决]2个bat代码。调用exe软件的方法不太一样。为啥其中1个调用会出错?



这个代码,测试过。不好用,会弹出错误提示。
  1. @echo off
  2. taskkill /f /im wentong.exe
  3. set PWD=%~sdp0
  4. echo %pwd%\wentong\wentong.exe
  5. start "" "%pwd%\wentong\wentong.exe"
  6. exit
复制代码
这个代码,测试了。好用,exe软件正常运行。。。
  1. @echo off
  2. taskkill /f /im wentong.exe
  3. set PWD=%~sdp0
  4. echo %pwd%\wentong\wentong.exe
  5. cd /d %pwd%\wentong
  6. start "" "wentong.exe"
  7. exit
复制代码

评分

参与人数 1PB -2 收起 理由
pcl_test -2 同贴问题在原帖继续

查看全部评分

发表于 2016-1-19 10:56:43 | 显示全部楼层

批处理如何使用相对路径执行外部程序?

本帖最后由 pcl_test 于 2016-1-19 13:15 编辑

请教:如何写批处理cmd用相对路径调用外部程序?



以下批处理能成功调用  D:\wentong\wentong.exe

@echo off
start cmd /k "cd/d d:\wentong&&wentong.exe"
exit
@echo off

我想用相对路径写批处理,无论wentong.exe置于哪个文件夹,只要把批处理置于和wentong.exe同一目录,就能启动wentong.exe,类似于apppath/wentong.exe的方式,不知道该批处理如何写?谢谢

评分

参与人数 1PB -2 收起 理由
pcl_test -2 勿发笼统的标题

查看全部评分

 楼主| 发表于 2016-1-19 11:12:13 | 显示全部楼层
回复 1# 15972587869
  1.     rem 全盘搜索:xx软件.exe。只要找到任意1个,就goto。找不到就另goto
  2. set "FileName=xx软件.exe"
  3. echo 正在搜索,请稍候...

  4. echo 本地磁盘:
  5. for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  6. fsutil fsinfo drivetype %%a: | find "固定">nul && (echo %%a) && (

  7. if exist %%a:\ (
  8.         for /f "delims=" %%b in ('dir /a-d /s /b "%%a:\*%FileName%" 2^>nul') do (
  9.             if /i "%%~nxb" equ "%FileName%" (
  10.                 echo,%%b
  11.                 goto :nexta
  12.             )
  13.         )
  14.     )

  15. )
  16. )

  17. ———————————————————————
  18. :firsta
  19. echo firstaaa
  20. exit

  21. ———————————————————————
  22. :nexta
  23. echo nextaaa

  24. exit
复制代码
发表于 2016-1-19 11:49:21 | 显示全部楼层
全盘搜索:xx软件.exe,那会很花费时间吧
发表于 2016-1-19 11:49:42 | 显示全部楼层
有没直接指定exe的方法
发表于 2016-1-19 15:23:05 | 显示全部楼层
相对位置不就是
  1. ..\..\..\xxxxx
  2. .\xxxxx
复制代码
.        当前目录
..       上一级目录
发表于 2016-1-19 17:30:00 | 显示全部楼层
我的意思是用类似于VB的
apppath,如

@echo off
start cmd /k " apppath\wentong.exe"
exit
@echo off

即批处理文件和exe文件放一个目录,点击批处理就能执行exe文件,不知道怎么用批处理正确表达
 楼主| 发表于 2016-1-19 22:11:49 | 显示全部楼层
回复 6# 15972587869
  1. @echo off
  2. set PWD=%~sdp0

  3. if exist %~sdp0\wentong.exe (
  4. start "" "%PWD%\wentong.exe"
  5. )
复制代码
发表于 2016-1-19 22:18:06 | 显示全部楼层
vb的app.path就是批处理的%~dp0,那么你的要求只要start "" wentong.exe即可
发表于 2016-1-20 08:50:31 | 显示全部楼层
谢谢楼上二位,按你们说的顺利解决
发表于 2016-1-20 09:11:41 | 显示全部楼层
请教把批处理放在wentong\文件夹的上一级目录,调用wentong.exe又该怎么写呢?
发表于 2016-1-20 11:51:32 | 显示全部楼层
  1. wentong.exe
复制代码
改为
  1. wentong\wentong.exe
复制代码
发表于 2016-1-20 14:27:53 | 显示全部楼层
本帖最后由 15972587869 于 2016-1-20 14:30 编辑

[请教把批处理放在wentong\文件夹的上一级目录,调用wentong.exe又该怎么写呢?

@echo off
set PWD=%~sdp0
if exist %~sdp0\wentong.exe (
start "" "%PWD%\wentong.exe"
)

像楼上这样引用,不知道如何写?
 楼主| 发表于 2016-1-20 15:12:16 | 显示全部楼层
回复 12# 15972587869
  1.     @echo off
  2. set PWD=%~sdp0
  3. if exist %~sdp0\wentong\wentong.exe (
  4. start "" "%PWD%\wentong\wentong.exe"
  5. )
复制代码
发表于 2016-1-20 17:02:49 | 显示全部楼层
本帖最后由 15972587869 于 2016-1-20 17:14 编辑

回复 13# ygqiang


用你的代码运行了下,调用不出

wentong下载:http://pan.baidu.com/s/1gek1UBT
麻烦您试试,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 10:30 , Processed in 0.022317 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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