我正在尝试从build.xml中调用logoff命令。我在我的蚂蚁目标中尝试了几种组合,例如:
<target name="bat">
<echo>Executing batch script</echo>
<exec dir="C:\WINDOWS\system32" executable="cmd">
<arg value="/c"/>
<arg value="logoff"/>
</exec>
</target>
但每次都会收到此错误: “注销不被识别为内部或外部命令,可操作程序或批处理文件”
我不知道如何解决这个问题。 谢谢你的帮助。
修改
logoff.xml
<?xml version="1.0"?>
<project name="logoff" default="off" basedir=".">
<target name="off">
<exec executable="cmd">
<arg value="/c"/>
<arg value="logoff"/>
</exec>
</target>
</project>
logoff_xml.bat:
@echo off
set ANT_HOME=W:\lib\org.apache.ant
set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_24
set PATH=%PATH%;%ANT_HOME%\bin
set BUILD_PATH=W:\logoff.xml
set ANT=call ant -buildfile %BUILD_PATH%
%ANT%
pause
echo%PATH%(使用buid.xml bat目标)
[exec] C:\Outils\GPS_510\bin;C:\Outils\GNATPRO_6.1.2\bin;C:\WINDOWS\system3
2;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Outils\Python25;C:\MinGW\bin;C:\Program
Files (x86)\IBM\RationalSDLC\common;C:\Program Files (x86)\IBM\RationalSDLC\Cle
arCase\bin;C:\Program Files (x86)\doxygen\bin;C:\Program Files (x86)\Citrix\Syst
em32\Citrix\IMA;C:\Program Files (x86)\Citrix\System32\Citrix\IMA\Subsystems;C:\
WINDOWS\System32\Citrix\IMA;C:\Program Files (x86)\Citrix\system32;C:\Program Fi
les (x86)\commonfiles\Citrix\System32\;C:\MinGW\msys\1.0\bin;c:\outils\cygw
in\bin;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\Program Files (x86)\commonfiles
\Citrix\System32;C:\Program Files (x86)\Java\jre6\bin;lib\org.apache.an
t\bin
编辑: 当我使用Ant启动注销时,我得到了:
[exec] Disconnecting
[exec] "logoff.exe is not recognized as an internal or external command, operable program or batch file"
答案 0 :(得分:1)
我无法想象为什么有人会在构建脚本中执行此操作。
请不要这样做。
但如果你这样做,请不要执行cmd.exe
- 直接致电logoff.exe
<project name="logoff" default="logoff" basedir=".">
<target name="logoff">
<exec executable="logoff" />
</target>
</project>
logoff.exe
%PATH%
是logoff.exe
的一个非常安全的假设,如果由于某种原因它不是,请设置属性以获取<project name="logoff" default="logoff" basedir=".">
<property name="system32.dir" location="C:\Windows\System32" />
<target name="logoff">
<exec executable="${system32.dir}\logoff" />
</target>
</project>
的绝对路径;
{{1}}
我因为打字而感到肮脏。
答案 1 :(得分:0)
你应该删除dir属性....这对我有用:
<?xml version="1.0" encoding="UTF-8" ?>
<project name="logoff" default="default" basedir=".">
<target name="default">
<exec executable="cmd">
<arg value="/c"/>
<arg value="logoff"/>
</exec>
</target>
</project>
修改强>
@echo off
set ANT_HOME=W:\lib\org.apache.ant
set PATH=%PATH%;%ANT_HOME%\bin
set BUILD_PATH=W:\logoff.xml
set ANT=call ant -buildfile %BUILD_PATH%
%ANT%
pause
答案 2 :(得分:0)
请尝试使用shutdown /l /f
,如此处所示:
这可能也有帮助(描述如何在java中执行),因为ant使用类似的(对java)参数: