从批处理文件启动的文件夹不活动 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 的建议)
我有以下批处理文件,它基本上从共享文件夹复制另一个 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 的建议)