Board logo

标题: [文件操作] NET Framework应用EXE文件为何不能被批处理执行? [打印本页]

作者: taotesea    时间: 2011-5-17 10:22     标题: NET Framework应用EXE文件为何不能被批处理执行?

先说明NetExe文件是Microsoft .NET Framework是用C#写的小程序,用鼠标双击可以运行起来
以下是批处理内容
  1. cd d:\
  2. cd D:\NetExe
  3. start D:\NetExe\NetExe.exe
复制代码
执行完这个批处理,但NetExe.exe这个文件没有被运行起来,为什么?
是不是.NET Framework的Exe文件在批处理下不能被执行吗?

同样的写法
  1. cd d:\
  2. cd D:\7-zip
  3. start D:\7-zip\7-zip.exe
复制代码
就可以运行起来
作者: hanyeguxing    时间: 2011-5-17 12:24

双击能运行并驻留吗?
作者: taotesea    时间: 2011-5-17 12:25

用鼠标双击可以运行起来
作者: hanyeguxing    时间: 2011-5-17 12:29

3# taotesea


使用 start "" "d:\456\123.exe" 这样
作者: taotesea    时间: 2011-5-17 12:55

3# taotesea


使用 start "" "d:\456\123.exe" 这样
hanyeguxing 发表于 2011-5-17 05:29

还是不行,没有运行起来
作者: applba    时间: 2011-5-17 14:47

本帖最后由 applba 于 2011-5-17 14:48 编辑

试试

start /d "D:\NetExe" "netexe.exe"

前面的CD都可以省略了
作者: CrLf    时间: 2011-5-17 14:52

6# applba

语法是:
start /b "窗口标题" "参数"
作者: dennisle    时间: 2011-5-17 15:29

樓主不妨試試:

pushd d:\netexe
start "" netexe.exe
作者: applba    时间: 2011-5-17 15:52

本帖最后由 applba 于 2011-5-17 16:10 编辑

7# zm900612


你确定?

你试试以下问题:
start "D:\myQQ2011\Bin\qq.exe"
start /d "D:\myQQ2011\Bin" "qq.exe"

第一句是调用失败的,我也不知道原因
第二句才能正确调用到qq.exe

不用拿notepad.exe测试,因为他在path目录里面
作者: CrLf    时间: 2011-5-17 15:59

9# applba


哦,我看错了,是d开关,不是b开关...
作者: applba    时间: 2011-5-17 16:18

我来猜测一下:
这个批处理可能是从C盘运行的,你做CD的时候,没有加/d,所以导致CD失败。
你看看这样行不行:cd /d "d:\D:\NetExe"

而运用pushd也可以解决这个问题,pushd相当于 cd /d。
如果后面还要恢复到先前的目录,之间popd就行了

当然了,start  /d 更好,直接指定从哪个目录运行,还不用改变当前目录。
作者: applba    时间: 2011-5-17 16:36

结合hanyeguxing和我9楼的分析:
start "D:\myQQ2011\Bin\qq.exe"出错的原因是在于引号内的字符串被当作了title参数。即start命令后面紧跟的是引号,引号内的内容将作为title参数。如果紧跟的不是引号,title参数被省略。
而没有引号的形式是可以被正确执行的, start D:\myQQ2011\Bin\qq.exe。但是如果路径里面有空格的时候,你又不得不使用引号,所以版主的用法就是用双引号顶上这个title参数。
当然了 /i /min /max /b 都不会导致其后的双引号被识别为title。
作者: taotesea    时间: 2011-5-17 16:52

谢谢大家,好象都不行,我在试试,谢谢大家
作者: taotesea    时间: 2011-5-17 17:00

试试

start /d "D:\NetExe" "netexe.exe"

前面的CD都可以省略了
applba 发表于 2011-5-17 07:47


谢谢成功了,但是需要将""去调就可以了
作者: applba    时间: 2011-5-17 19:24

start 里面的引号使用是非常需要小心的,如果非要使用
start /d "D:\NetExe" "netexe.exe"
这种方式是最保险的




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