【发布时间】:2020-01-29 11:00:47
【问题描述】:
我有一个批处理程序,它可以按特定顺序打开程序和文件,因此当我登录计算机时,我什至无需单击即可打开所有内容。此脚本将在冷启动时自动运行,并且通过调整答案,可以运行脚本以简单地打开尚未打开的窗口而不会创建重复项。
通过确定程序是否已经在运行,这段代码几乎可以完美地满足我的所有需求:
SETLOCAL EnableExtensions
set EXE=notepad++.exe
FOR /F %%x IN ('tasklist /NH /FI "IMAGENAME eq %EXE%"') DO IF %%x == %EXE% goto FOUND
start C:\MEDIA\OFFICE\Notepad++\notepad++.exe
goto FIN
:FOUND
echo Notepad++ is already running.
:FIN
但是我不确定如何使用这种方法(或存在哪些替代方法)来告诉我以下特定的 shell 文件夹是否打开。
所需/工作路径 (My Documents) 是:
start %windir%\explorer.exe shell:UsersFilesFolder\JAB Creations
绝对路径(My Computer)是:
D:\My Documents\JAB Creations
重要说明
- 目录是一个符号链接,那个命令如果你好奇的话是
Mklink /J "C:\Users\John\JAB Creations" "D:\My Documents\JAB Creations"。 - 我确实不要使用绝对路径,我要
My Documents下打开的目录,不My Computer。 - 我已经删除了 Windows 资源管理器中的垃圾条目,例如
Libraries和Quick Access,我使用了My Documents(现在称为User Files)。此命令通过My Documents打开目录,而不是在示例中将其列在My Computer下。 - 如果您正在测试,则需要在
Folder Options窗口的View选项卡下启用Expand to open folder和Show all folders选项,否则默认隐藏有用的目录。
重要的先决条件
首先修复文件夹选项,否则尝试毫无意义:
其次,这是视觉上应该发生的:
【问题讨论】:
-
如果你用它来“在我登录计算机时,无需单击即可打开所有内容”,你的程序怎么可能已经打开了?当我登录时,桌面和任务栏始终是空的,这表明我没有运行任何窗口程序。
-
登录后谁会在您运行脚本之前打开您的文件夹?无论如何,opening a folder explorer if it wasn't opened 已经有一个重复的问题。但我认为您无法检查它是否在“我的电脑”或“我的文档”的上下文中打开,除非您将调试器附加到 explorer.exe
-
约翰,我对 explorer 的工作原理非常了解,并且已经完整阅读了您的问题。您发布了不相关的工作代码,此外,您还向我们提供了有关符号链接和重命名/重定向路径的不必要信息。奇怪的是,我自己和@phuclv 似乎都缺乏理解力,不是吗?我们都注意到,在登录时,您的特定窗口进程不应该已经打开,并且不能使用标准批处理文件命令来完成。您正在寻找一个题外话“我该怎么做?”答案,但 StackOverflow 与一般编程无关。
-
你的问题跑题了。它是一种通用编程,本网站针对您提供的代码的特定问题提供帮助。请求对软件(即调试器)的建议也是题外话。
-
说了算,不胜现场指导!
标签: batch-file windows-10 windows-shell