从批处理文件启动的文件夹不活动 window

Folder started from batch file is not active window

我有以下批处理文件,它基本上从共享文件夹复制另一个 bat 文件,选择这个 bat 文件并发送带有 sendkeys 选项的 ENTER 键。

在 Windows 7 上一切正常,但是,一旦我尝试在 Windows 10 上使用相同的功能,它就无法正常工作。

它会复制特定文件夹中的文件,它会打开包含所选文件的文件夹,但不会启动文件本身。在我的情况下,使用 sendkeys 功能启动文件很重要。

我假设问题是由于没有使打开的文件夹保持焦点引起的,sendkeys 确实发送了 ENTER 按钮,但是由于所选文件夹不在 windows 焦点批处理文件中没有自动启动。

有什么方法可以将 windows 集中在打开的文件夹上吗?

@if (@CodeSection == @Batch) @then

@echo off

set SendKeys=CScript //nologo //E:JScript "%~F0"

xcopy "\fs\FIle Share\SA Support\ZverTools\Win10UninstallUnnecessaryApps.bat" "%USERPROFILE%" /y

PING localhost -n 2 >NUL

set targetfilepath=%USERPROFILE%\Win10UninstallUnnecessaryApps.bat   
%SystemRoot%\explorer.exe /select, "%TARGETFILEPATH%"

PING localhost -n 1 >NUL

%SendKeys% "{ENTER}"

goto :EOF

@end

var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0));

所以,问题与 ping 有关,一秒不够,所以我将其增加到四秒,现在可以正常工作了。

@if (@CodeSection == @Batch) @then

@echo off

set SendKeys=CScript //nologo //E:JScript "%~F0"

xcopy "\fs\FIle Share\SA Support\ZverTools\Win10UninstallUnnecessaryApps.bat" "%USERPROFILE%" /y

TIMEOUT /T 2 /NOBREAK

set targetfilepath=%USERPROFILE%\Win10UninstallUnnecessaryApps.bat   
explorer.exe /select, "%TARGETFILEPATH%"

TIMEOUT /T 4 /NOBREAK

%SendKeys% "{ENTER}"

goto :EOF

@end

var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0));

我也换了ping

PING localhost -n 1 >NUL

有 temeout

**TIMEOUT /T 4 /NOBREAK**

(根据 Compo 的建议)