1

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

  1. 以管理员身份打开 SYSWOW64\cmd.exe(这是一个 32 位应用程序)
  2. cd c:\mybatchfilelocation\
  3. 然后运行我的批处理文件batchfile.bat

我希望能够以管理员身份运行一批,自动以管理员身份打开 SYSWOW64\cmd.exe(提示输入管理员用户名和密码即可),然后运行我的 batchfile.bat

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

更新

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

4

2 回答 2

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

更新

如果定义的行不应该使用not。应该如上。

于 2013-03-29T00:03:36.090 回答
0

你能包括额外的软件吗?有几个 命令行 实用程序可用于此目的。或者您可以使用 VBScript 启动批处理脚本:

Set app = CreateObject("Shell.Application")
app.ShellExecute "C:\Windows\SYSWOW64\cmd.exe", "/c batchfile.bat" _
  , "C:\mybatchfilelocation\", "runas", 1
于 2013-03-25T19:36:41.380 回答