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

[文件操作] 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
复制代码
就可以运行起来

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

TOP

试试

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

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


谢谢成功了,但是需要将""去调就可以了

TOP

谢谢大家,好象都不行,我在试试,谢谢大家

TOP

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

TOP

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

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

当然了,start  /d 更好,直接指定从哪个目录运行,还不用改变当前目录。

TOP

9# applba


哦,我看错了,是d开关,不是b开关...

TOP

本帖最后由 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目录里面

TOP

樓主不妨試試:

pushd d:\netexe
start "" netexe.exe

TOP

6# applba

语法是:
start /b "窗口标题" "参数"

TOP

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

试试

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

前面的CD都可以省略了

TOP

3# taotesea


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

还是不行,没有运行起来

TOP

3# taotesea


使用 start "" "d:\456\123.exe" 这样
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

用鼠标双击可以运行起来

TOP

双击能运行并驻留吗?
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

返回列表