Windows 无法使用*.bat文件启动*.exe,但如果直接从CMD运行命令,它将启动

Windows 无法使用*.bat文件启动*.exe,但如果直接从CMD运行命令,它将启动,windows,batch-file,cmd,exe,Windows,Batch File,Cmd,Exe,我有一个脚本,它关闭一个名为ncat.exe的进程,然后重新打开它,或者至少我希望它这样做,但当我运行.bat文件时,它似乎不起作用。以下是脚本的一部分: TASKKILL /F /IM ncat.exe* /T >nul 2>nul ping localhost -n 3 >nul regedit /S c:\ncatprintingPuttyDefaults.reg cd c:\ ncat_lpt1.exe timeout /t 10 /nobreak >nul 这

我有一个脚本,它关闭一个名为ncat.exe的进程,然后重新打开它,或者至少我希望它这样做,但当我运行.bat文件时,它似乎不起作用。以下是脚本的一部分:

TASKKILL /F /IM ncat.exe* /T >nul 2>nul
ping localhost -n 3 >nul
regedit /S c:\ncatprintingPuttyDefaults.reg
cd c:\
ncat_lpt1.exe
timeout /t 10 /nobreak >nul
这些不是启动
ncat_lpt1.exe
,该脚本中包含:

@ECHO OFF
cd c:\Program Files (x86)\Ncat
ncat.exe -l -k -p 5964 > lpt1
如果我转到cmd并手动键入

cd c:\
ncat_lpt1.exe
它马上就跑,没问题。因此,如果通过bat文件执行,则不会工作,但会手动执行。令人神魂颠倒的泡芙

帮忙?如果需要任何其他细节,请告诉我,我会尽力解释:)

C:\ncat_lpt1.exe的名称更改为
ncat_lpt1.bat

(在提示符下,
renc:\ncat_lpt1.exe ncat_lpt1.bat


Windows使用文件名的扩展名来确定如何运行该文件。您不能简单地用扩展名
.exe
命名批处理文件来执行它-它需要扩展名
.bat

它不能只是默默地不启动进程。一定有错误,或任何其他失败原因的痕迹。请提供这些。顺便说一句,您需要在
cd
路径周围加上引号。也许这就是为什么。NB:用
pushd c:`替换
cd c:`;如果此人已经在C下的目录中,cd将只转到C驱动器的根目录;pushd将把您带到c:\root,无论从何处调用。@JohnBevan--好的,所以我用它创建了一个小脚本并正在工作:(@echo off pushd c:\ncat\u lpt1.exe Pause)所以在我的主脚本中有东西破坏了它,也遵循@akonsu和@JohnLBevan:
pushd“c:\Program Files(x86)\ncat”
或者,不更改默认目录,您可以编写
“c:\ProgramFiles(x86)\Ncat\Ncat.exe”-l-k-p5964
TASKKILL /F /IM ncat.exe* /T >nul 2>nul
ping localhost -n 3 >nul
regedit /S c:\ncatprintingPuttyDefaults.reg
cd c:\
CALL ncat_lpt1.BAT
timeout /t 10 /nobreak >nul
@ECHO OFF
cd c:\Program Files (x86)\Ncat
ncat.exe -l -k -p 5964 > lpt1