Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 使用批处理文件获取所有打开窗口的列表_Batch File_Window - Fatal编程技术网

Batch file 使用批处理文件获取所有打开窗口的列表

Batch file 使用批处理文件获取所有打开窗口的列表,batch-file,window,Batch File,Window,新的批处理文件,但到目前为止,已经设法得到一些方便的工具工作。但我现在被我教的一些琐碎的东西卡住了 我现在正在开发一个工具,需要知道windows文件资源管理器打开了什么。我已经看过了,我遇到的所有示例都是关于打开目录或列出指定目录的内容的。我所找到的最接近我正在尝试做的事情的例子是在更高级的语言中 这将只列出最后一个活动的资源管理器窗口: @echo off setlocal enableDelayedExpansion for /f "skip=1 delims=" %%a in ('tas

新的批处理文件,但到目前为止,已经设法得到一些方便的工具工作。但我现在被我教的一些琐碎的东西卡住了


我现在正在开发一个工具,需要知道windows文件资源管理器打开了什么。我已经看过了,我遇到的所有示例都是关于打开目录或列出指定目录的内容的。我所找到的最接近我正在尝试做的事情的例子是在更高级的语言中

这将只列出最后一个活动的资源管理器窗口:

@echo off
setlocal enableDelayedExpansion
for /f "skip=1 delims=" %%a in ('tasklist /fi "imagename eq explorer.exe" /v /fo:csv') do (
    set "info=%%a" & set "info=!info:","=^|!" & set info=!info:~1,-1!
    for /f "delims=| tokens=9" %%b in ("!info!") do if not "%%b"=="N/A" echo %%b
)
pause
要列出所有打开的资源管理器窗口,必须使用实用程序:


只是想了解第一段代码。如果运气不好,我会使用cmdow。第一个循环按行读取任务列表的输出,然后用另一个分隔符替换csv分隔符“,”为每行进行解析做好准备,以便提取我们需要的标记,然后去掉开头和结尾引号。第二个循环现在可以看到由
|
分隔的行中的代币,它将窗口标题放入%%b。干杯,伙计,你真的知道你的批次。我将给您选择的答案,因为我可能最终会使用cmdow。当然,在我把头撞在砖墙上一段时间后。谁说固执不是好品质:)
for /f "tokens=8*" %%a in ('cmdow /t /b') do if %%a==explorer echo %%b