通过批量“CMD”文件为特定系统做特定的工作

我需要你的帮助,我正在为我的小应用程序构build小的安装batch file(我的app.exe必须复制到Windows版本和体系结构的不同位置)。

我玩了它,但不能解决给定的任务…

我创build了这个代码:(出于testing的目的)

If Exist "C:\Users\All Users\ntuser.dat" Goto Win 7 If Exist "C:\Documents and Settings\All Users\ntuser.dat" Goto Win XP :Win 7 C:\w7\test.txt :Win XP C:\wxp\test.txt 

但是,当执行batch file(从Windows XP)两个工作都完成(两个文件都打开)…为什么我不明白…因为我知道它必须打开只赢得XP段代码

请如何修改代码,举个例子..

我的使命是:

我想我的app.exe文件复制在不同的Windows版本的不同位置和版本(WinXP – X86-X64,Win7 – X86-X64)

如果是Windows 7×64 x86或win xp-x86,则必须只使用为给定系统设置的代码,而不是其他

感谢您在高级

您需要告诉它在该部分结束时停止运行,否则将继续运行。 (分支标签中的空间也不是一个好主意,虽然它们是允许的,为什么使用它们,当用户永远不会看到它们?)

 If Exist "C:\Users\All Users\ntuser.dat" Goto Win7 If Exist "C:\Documents and Settings\All Users\ntuser.dat" Goto WinXP :Win7 C:\w7\test.txt goto :eof :WinXP C:\wxp\test.txt goto :eof 

:eof是一个预先定义的分支标签,意思end of file 。 更多信息在goto文档中

尝试这个:

如果存在“C:\ Users \ All Users \ ntuser.dat”转到Win_7
如果存在“C:\ Documents and Settings \ All Users \ ntuser.dat”转到Win_XP

 :Win_7

 C:\ W7 \ test.txt的
 GOTO:EOF

 :WIN_XP

 C:\ WXP \ test.txt的
 GOTO:EOF