如何创建打开32位cmd提示的批处理文件作为Admin来运行另一个批处理文件

时间:2013-03-25 18:54:08

标签: batch-file cmd

我有一个批处理文件,我目前必须执行以下操作:

  1. 以管理员身份打开SYSWOW64 \ cmd.exe(这是一个32位应用程序)
  2. cd c:\ mybatchfilelocation \
  3. 然后运行我的批处理文件batchfile.bat
  4. 我希望能够以管理员身份运行一个批处理,以管理员身份自动打开SYSWOW64 \ cmd.exe(提示管理员用户名和密码正常),然后运行我的batchfile.bat

    如果您在运行之前在批处理文件中预先指定了/ user:machinename \ administor,我已经看到了你可以做到的地方,它只提示输入密码但这需要部署给客户而我不能依靠他们编辑文件。当需要输入时,我需要它以提示运行。

    更新

    感谢Bill,我不再需要担心SYSWOW64部分。我只需要弄清楚如何让批处理文件以管理员身份打开cmd提示符,并让该cmd在同一目录中运行另一个批处理文件。

2 个答案:

答案 0 :(得分:1)

在可能运行64位Windows的计算机上的cmd shell脚本(批处理文件)中注册32位DLL ...

@echo off
setlocal enableextensions
set REGSVR=
if defined PROCESSOR_ARCHITEW6432 (
  set REGSVR=%SystemRoot%\system32\regsvr32.exe
) else (
  set REGSVR=%SystemRoot%\SysWOW64\regsvr32.exe
)
%REGSVR% /s "C:\Path\my dll file.dll"
...
endlocal

<强>更新

if defined 行不应使用。它应该如上所述。

答案 1 :(得分:0)

您可以添加其他软件吗?有several commandline utilities可用于此目的。或者您可以使用VBScript启动批处理脚本:

Set app = CreateObject("Shell.Application")
app.ShellExecute "C:\Windows\SYSWOW64\cmd.exe", "/c batchfile.bat" _
  , "C:\mybatchfilelocation\", "runas", 1