标题: [文件操作] 批处理如何使用相对路径执行外部程序? [打印本页]
作者: 15972587869 时间: 2016-1-19 10:56 标题: 批处理如何使用相对路径执行外部程序?
本帖最后由 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的方式,不知道该批处理如何写?谢谢
作者: ygqiang 时间: 2016-1-19 11:12
回复 1# 15972587869 - rem 全盘搜索:xx软件.exe。只要找到任意1个,就goto。找不到就另goto
- set "FileName=xx软件.exe"
- echo 正在搜索,请稍候...
-
- echo 本地磁盘:
- 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 (
- fsutil fsinfo drivetype %%a: | find "固定">nul && (echo %%a) && (
-
- if exist %%a:\ (
- for /f "delims=" %%b in ('dir /a-d /s /b "%%a:\*%FileName%" 2^>nul') do (
- if /i "%%~nxb" equ "%FileName%" (
- echo,%%b
- goto :nexta
- )
- )
- )
-
- )
- )
-
- ———————————————————————
- :firsta
- echo firstaaa
- exit
-
- ———————————————————————
- :nexta
- echo nextaaa
-
- exit
复制代码
作者: 15972587869 时间: 2016-1-19 11:49
全盘搜索:xx软件.exe,那会很花费时间吧
作者: 15972587869 时间: 2016-1-19 11:49
有没直接指定exe的方法
作者: 回家路上 时间: 2016-1-19 15:23
相对位置不就是复制代码
. 当前目录
.. 上一级目录
作者: 15972587869 时间: 2016-1-19 17:30
我的意思是用类似于VB的
apppath,如
@echo off
start cmd /k " apppath\wentong.exe"
exit
@echo off
即批处理文件和exe文件放一个目录,点击批处理就能执行exe文件,不知道怎么用批处理正确表达
作者: ygqiang 时间: 2016-1-19 22:11
回复 6# 15972587869 - @echo off
- set PWD=%~sdp0
-
- if exist %~sdp0\wentong.exe (
- start "" "%PWD%\wentong.exe"
- )
复制代码
作者: pcl_test 时间: 2016-1-19 22:18
vb的app.path就是批处理的%~dp0,那么你的要求只要start "" wentong.exe即可
作者: 15972587869 时间: 2016-1-20 08:50
谢谢楼上二位,按你们说的顺利解决
作者: 15972587869 时间: 2016-1-20 09:11
请教把批处理放在wentong\文件夹的上一级目录,调用wentong.exe又该怎么写呢?
作者: 回家路上 时间: 2016-1-20 11:51
复制代码
改为复制代码
作者: 15972587869 时间: 2016-1-20 14:27
本帖最后由 15972587869 于 2016-1-20 14:30 编辑
[请教把批处理放在wentong\文件夹的上一级目录,调用wentong.exe又该怎么写呢?
@echo off
set PWD=%~sdp0
if exist %~sdp0\wentong.exe (
start "" "%PWD%\wentong.exe"
)
像楼上这样引用,不知道如何写?
作者: ygqiang 时间: 2016-1-20 15:12
回复 12# 15972587869 - @echo off
- set PWD=%~sdp0
- if exist %~sdp0\wentong\wentong.exe (
- start "" "%PWD%\wentong\wentong.exe"
- )
复制代码
作者: 15972587869 时间: 2016-1-20 17:02
本帖最后由 15972587869 于 2016-1-20 17:14 编辑
回复 13# ygqiang
用你的代码运行了下,调用不出
wentong下载:http://pan.baidu.com/s/1gek1UBT
麻烦您试试,谢谢!
作者: ygqiang 时间: 2016-1-20 17:33
回复 14# 15972587869 - @echo off
- set PWD=%~sdp0
- if exist "%PWD%\wentong\wentong.exe" (
- start "" "%PWD%\wentong\wentong.exe"
- )
复制代码
作者: 15972587869 时间: 2016-1-20 17:44
回复 15# ygqiang
依然调不出
作者: ygqiang 时间: 2016-1-20 17:50
回复 14# 15972587869 - @echo off
- set PWD=%~sdp0
- if exist "%PWD%\wentong\wentong.exe" (
- echo file ok
- pause
- start "" "%PWD%\wentong\wentong.exe"
- pause
- )
- echo file not exist
- pause
复制代码
给出截图。
作者: 15972587869 时间: 2016-1-21 10:23
回复 15972587869
ygqiang 发表于 2016-1-20 17:33
用您的代码仍然调不出
作者: ygqiang 时间: 2016-1-21 12:20
回复 18# 15972587869
给出截图看看。。。。 给出截图看看。。。。 给出截图看看。。。。
作者: 15972587869 时间: 2016-1-21 12:39
你的代码运行后这样的
正常调用运行应该是这样的
作者: ygqiang 时间: 2016-1-21 13:02
本帖最后由 ygqiang 于 2016-1-21 13:04 编辑
回复 20# 15972587869 - @echo off
- set PWD=%~sdp0
- if exist "%PWD%wentong\wentong.exe" (
- echo file ok
- echo "%PWD%wentong\wentong.exe"
- pause
- start "" "%PWD%wentong\wentong.exe"
- pause
- exit
- )
复制代码
作者: 15972587869 时间: 2016-1-21 13:35
回复 21# ygqiang
还是调不出
wentong下载地址:http://pan.baidu.com/s/1gek1UBT
麻烦您下载本机上测试下,非常谢谢!
作者: ygqiang 时间: 2016-1-21 13:44
本帖最后由 ygqiang 于 2016-1-21 13:46 编辑
回复 22# 15972587869
下载下来。解压卡。
win7 64系统环境下,双击wentong.exe,照样没反应?
感觉是你自己软件的问题。。
作者: 15972587869 时间: 2016-1-21 14:04
还是调不出
作者: 15972587869 时间: 2016-1-21 14:08
回复 23# ygqiang
我这双击能调出呢
作者: ygqiang 时间: 2016-1-21 14:10
回复 25# 15972587869
wentong下载地址:http://pan.baidu.com/s/1gek1UBT
win7 64系统环境,下载本机。解压开,双击里面的wentong.exe,没反应。。。
作者: 15972587869 时间: 2016-1-21 14:15
回复 26# ygqiang
我也是64的win7,双击能调出
作者: ygqiang 时间: 2016-1-21 14:33
回复 27# 15972587869 - @echo off
- set PWD=%~sdp0
- if exist "%PWD%\wentong\wentong.exe" (
- echo file ok
- echo "%PWD%\wentong\wentong.exe"
- pause
- start "" "%PWD%\wentong\wentong.exe"
- pause
- exit
- )
复制代码
代码没问题。是exe软件本身的问题。。
作者: 15972587869 时间: 2016-1-21 14:36
哦,那算了,谢谢您!
作者: ygqiang 时间: 2016-1-21 14:37
回复 27# 15972587869
win7 64系统下,exe软件,双击可以运行。
但进入设置里面,点“确定”。照样会出错退出。
作者: 15972587869 时间: 2016-1-21 16:00
本帖最后由 15972587869 于 2016-1-21 16:09 编辑
@echo off
start cmd /k "cd/c c:\wentong&&wentong.exe"
exit
@echo off
谢谢大家,通过大家的提示,我做出来了。谢谢大家
作者: ygqiang 时间: 2016-1-21 16:14
回复 31# 15972587869
这就是最终代码?跟1楼的没啥差别啊?
作者: ygqiang 时间: 2016-1-21 16:15
回复 31# 15972587869
cd /d c:\wentong
作者: 15972587869 时间: 2016-1-21 16:55
想用apppath,实在没办法,就把wentong文件夹放C盘根目录,用绝对路径方法调用了
作者: 15972587869 时间: 2016-1-26 15:25
经过大家反复指点,终于解决
谢谢大家!- @echo off
- set PWD=%~sdp0
- echo %pwd%\wentong\wentong.exe
- start cmd /k "cd/d %pwd%\wentong&&wentong.exe"
- exit
- @echo off
复制代码
作者: ygqiang 时间: 2016-1-26 16:01
本帖最后由 ygqiang 于 2016-1-26 16:06 编辑
回复 35# 15972587869 - @echo off
- set PWD=%~sdp0
- echo %pwd%\wentong\wentong.exe
- start "" "%pwd%\wentong\wentong.exe"
- exit
复制代码
这个代码,测试过。不好用。
作者: ygqiang 时间: 2016-1-26 16:05
回复 35# 15972587869 - @echo off
- taskkill /f /im wentong.exe
-
- set PWD=%~sdp0
- echo %pwd%\wentong\wentong.exe
- cd /d %pwd%\wentong
- start "" "wentong.exe"
- exit
复制代码
这个代码,测试了。好用。。。
作者: ygqiang 时间: 2016-1-26 16:12 标题: 批处理如何使用相对路径执行外部程序?
[已解决]2个bat代码。调用exe软件的方法不太一样。为啥其中1个调用会出错?
这个代码,测试过。不好用,会弹出错误提示。- @echo off
- taskkill /f /im wentong.exe
- set PWD=%~sdp0
- echo %pwd%\wentong\wentong.exe
- start "" "%pwd%\wentong\wentong.exe"
- exit
复制代码
这个代码,测试了。好用,exe软件正常运行。。。- @echo off
- taskkill /f /im wentong.exe
- set PWD=%~sdp0
- echo %pwd%\wentong\wentong.exe
- cd /d %pwd%\wentong
- start "" "wentong.exe"
- exit
复制代码
作者: WHY 时间: 2016-1-26 16:30
本帖最后由 WHY 于 2016-1-26 18:28 编辑
一些程序正常运行时需要动态链接库支持,除非是单文件绿色版EXE
第一个BAT没有切换到wentong.exe所在目录,在当前目录下由于找不到相应的dll文件,所以报错
作者: 15972587869 时间: 2016-1-26 17:01
谢谢,您和我的都好用!!:lol
作者: ygqiang 时间: 2016-1-26 17:48
回复 2# WHY - @echo off
- taskkill /f /im wentong.exe
- set PWD=%~sdp0
- echo %pwd%\wentong\wentong.exe
- start cmd /k "cd/d %pwd%\wentong&&wentong.exe"
- exit
复制代码
- @echo off
- taskkill /f /im wentong.exe
- set PWD=%~sdp0
- echo %pwd%\wentong\wentong.exe
- cd /d %pwd%\wentong
- start "" "wentong.exe"
- exit
复制代码
这2个代码,有啥差别呢?多谢。。
作者: WHY 时间: 2016-1-26 18:32
回复 3# ygqiang
没看出有区别。非要说区别,第一个是通过开启另一个CMD进程启动wentong.exe,而第2个是直接启动。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |