【发布时间】:2014-11-16 18:03:43
【问题描述】:
我有一个脚本可以关闭一个名为 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 文件完成,则不会工作,但手动会。脑洞大开……
帮助?如果需要任何其他细节,请告诉我,我尽力解释得最好:)
【问题讨论】:
-
它不能只是默默地不启动进程。一定有错误,或任何其他失败原因的痕迹。请提供这些。
-
顺便说一句,您需要在
cd路径周围加上引号。也许这就是原因。 -
注意:替换
cd c:` withpushd c:`;如果此人已经在 C 下的目录中,cd 只会转到 C 驱动器的根目录; pushd 将带你到 c:\ 根目录,无论从哪里调用。 -
@JohnBevan ---好的,所以我用这个创建了一个小脚本并且正在工作:(@echo off pushd c:\ ncat_lpt1.exe Pause)所以在我的主脚本中有些东西破坏了它跨度>
-
也关注@akonsu 和@JohnLBevan:
pushd "c:\Program Files (x86)\Ncat"或者,不更改默认目录,您可以写"c:\Program Files (x86)\Ncat\ncat.exe" -l -k -p 5964
标签: windows batch-file cmd exe