Excel 将焦点设置为具有批处理的应用程序

Excel 将焦点设置为具有批处理的应用程序,excel,batch-file,Excel,Batch File,我使用的是WinXP,我有一个批处理脚本,我在其中确定Excel工作表的文件名,然后通过简单地启动Excel工作表来启动它 问题是Excel当时正在运行。因此,当批处理文件启动Excel工作表时,Excel将发送到前端,Excel工作表将打开。但是,重点仍然是运行批处理文件的DOS框 在这种情况下,如何将焦点设置到Excel工作表?尝试将文件直接传递到Excel: excel.exe "C:\Path\To\file.xlsx" 无法测试,因为我们使用open office 编辑: 如果你想专

我使用的是WinXP,我有一个批处理脚本,我在其中确定Excel工作表的文件名,然后通过简单地启动Excel工作表来启动它

问题是Excel当时正在运行。因此,当批处理文件启动Excel工作表时,Excel将发送到前端,Excel工作表将打开。但是,重点仍然是运行批处理文件的DOS框


在这种情况下,如何将焦点设置到Excel工作表?

尝试将文件直接传递到Excel:

excel.exe "C:\Path\To\file.xlsx"
无法测试,因为我们使用open office

编辑:


如果你想专注于另一个程序,你可以这样做

call :focus WindowTitle
exit /b

:focus
setlocal EnableDelayedExpansion 

    if ["%~1"] equ [""] (
        echo Please give the window's title.
        exit /b
    )

    set pr=%~1
    set pr=!pr:"=!

    echo CreateObject("wscript.shell").appactivate "!pr!" > "%tmp%\focus.vbs"
    call "%tmp%\focus.vbs"
    del "%tmp%\focus.vbs"

goto :eof 
endlocal 

我正在使用vbscript来集中应用程序。您需要传递窗口的标题,而不是窗口的名称(whatever.bat)。要确保获得正确的

您当前用于完成此任务的命令是什么?只有
文件名
?@Mechaflash是的,只有
文件名
。我试过了,但它会打开另一个Excel应用程序窗口。我已经检查了命令行参数,但似乎没有重新使用现有应用程序窗口的开关。工具>选项>视图选项卡,并查找“任务栏中的窗口”。我唯一能想到的另一件事是尝试使用
START/B(excel.exe“C:\Path\To\file.xlsx”)
甚至可以尝试
/MAX
开关,看看这是否会对焦点产生影响。虽然它确实不会打开另一个excel应用程序窗口,但焦点仍然保留在DOS框中。请注意,它只在没有括号的情况下工作。--我希望我能给你一些建设性意见的声誉,但如果我投票支持你的答案或评论,那将意味着其他东西。=(.没关系。如果它不能解决问题,那么就不要投票。我希望其他人能回答,或者你能找到你的答案。很可能你必须使用powershell或vbscript来做这件事。
call :focus WindowTitle
exit /b

:focus
setlocal EnableDelayedExpansion 

    if ["%~1"] equ [""] (
        echo Please give the window's title.
        exit /b
    )

    set pr=%~1
    set pr=!pr:"=!

    echo CreateObject("wscript.shell").appactivate "!pr!" > "%tmp%\focus.vbs"
    call "%tmp%\focus.vbs"
    del "%tmp%\focus.vbs"

goto :eof 
endlocal