一个简单的复制文件的脚本,用于安装软件,在 Win7 下右击以管理员身份运行,竟然一闪而过,虽然脚本中有 pause 。后检查目标目录,毫无疑问自然是复制失败,软件安装失败。死活未能看出来脚本有何问题,因为这脚本本身已经够简单了,而且对于先启动 cmd 再手动启动该脚本的情况没有任何问题。更无语的是后来在多台机器上尝试,竟有部分成功部分失败的现象。估计应该是系统问题,但无论怎样总得要让脚本能够运行起来,事在人为。解决方法倒不复杂,就是显得有些蛋疼,专门建个 install.exe 仅仅就是为了启动同目录下的 install.cmd ,你说什么感觉!
附 install.c
附 install.c
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <unistd.h>
#include <windows.h>
#ifndef _WIN64
// 退出进程,若在 64 位系统上运行的话
void EXIT_IF_WOW64()
{
typedef BOOL (WINAPI *is_wow64_type)(HANDLE, PBOOL);
is_wow64_type is_wow64;
BOOL wow64 = FALSE;
is_wow64 = (is_wow64_type)GetProcAddress(
GetModuleHandle(TEXT("kernel32")),
"IsWow64Process"
);
if(is_wow64 != NULL)
is_wow64(GetCurrentProcess(), &wow64);
if(wow64) {