批处理运行和cmd直接运行结果不一样

时间:2023-01-19 21:09:31
我现在有个开源程序scrapy,它可以这样运行:在一个目录里面 scrapy crawl dmoz,然后有结果输出,这个命令在cmd里可以运行,但我需要将此命令放在程序里,所以写了个批处理,放在工程目录下,内容为 scrapy crawl dmoz。
用ShellExecuteEx运行批处理文件。显示为:scrapy不是内部或外部命令。求助怎么办啊?以前也用这种方式调用过vmrun.exe,是可以用的。估计是scrapy这个命令有点奇怪,如果是scrapy.exe可能可行,但是现在只有这个,并且在cmd里运行又是正常的,跟当前目录无关。

6 个解决方案

#1


环境变量设置正确没有?

#2


或者说你可以把批处理和scrapy.exe放在同一目录下

#3


这明显是目录问题,你可以先全部用绝对路径测试一下(包括Shell调用和批处理中对文件的调用)。

#4


批处理和cmd运行有许多的不一样的。比如:环境变量,程序运行的起始目录等等

#5


关键是 scrapy没有scrapy.exe这个东东,环境变量设置了

#6


搞定了,的确是绝对路径的问题,我把bat文件放在Debug目录下,居然没先在dos里试试可不可行,换了个目录,就可以了,好像是Debug目录下,找不到相应的程序

#1


环境变量设置正确没有?

#2


或者说你可以把批处理和scrapy.exe放在同一目录下

#3


这明显是目录问题,你可以先全部用绝对路径测试一下(包括Shell调用和批处理中对文件的调用)。

#4


批处理和cmd运行有许多的不一样的。比如:环境变量,程序运行的起始目录等等

#5


关键是 scrapy没有scrapy.exe这个东东,环境变量设置了

#6


搞定了,的确是绝对路径的问题,我把bat文件放在Debug目录下,居然没先在dos里试试可不可行,换了个目录,就可以了,好像是Debug目录下,找不到相应的程序