如何在Windows的启动文件夹中“注释掉”文件?

如何让Windows忽略启动文件夹中的特定文件?
简单来说,我想要像注释代码行一样注释掉文件... 就像.gitignore那样,但适用于Windows。
我的情况是:
我试图让Windows忽略启动文件夹中的某些文件,在启动时不执行它们。由于某些原因,我不愿意真正从启动文件夹中删除这些文件。 将这些文件嵌套在启动文件夹中的另一个文件夹中并不起作用,因为那个文件夹会在启动时打开。 我找到的一个解决方法是这里标记的答案,但对于快捷方式无效。
如果可能的话,我希望有一个解决方案,可以让其他脚本也忽略文件。

1有没有什么原因,你不能简单地将这些快捷方式移动到除了它们当前所在的文件夹之外的其他位置呢?顺便说一下,你所描述的确实存在。 - Ramhound
那可以作为临时解决方案。但我宁愿不这样做,因为我肯定会在一年内忘记那个位置。 - Off Kilter
1你不能在合理的时间内确定是否要将更改永久保存下来吗?那些快捷方式并没有什么特别之处。无论如何,在该文件夹中,无法让Windows“忽略”一个快捷方式。 - Ramhound
我现在不想要那个改变。但是可能一两年后我会想要它。 - Off Kilter
10@OffKilter 也许使用一个名为“启动(已禁用)”的文件夹名称会使它们在以后更容易找到。或者使用AutoRuns来禁用它们。 - Andrew Morton
我想我刚刚找到了一个解决办法... 我可以将这些文件压缩起来,然后应用我在问题中提到的变通方法。 - Off Kilter
1我来这里是为了指出我使用AutoRuns(图形用户界面)来完成这个目的。我看到已经提到过了,但我想强调这是一个很好的解决方案。请注意,它允许您通过点击来禁用(和重新启用)它们。 - JDługosz
@AndrewMorton - 没错。我的启动文件夹叫做“Startup-old”。后来,我把启动文件夹中的所有快捷方式都删除了,并在那里创建了一个批处理文件,将我想要启动的所有应用程序的路径都放进去。如果需要的话,我可以很容易地使用REM命令注释掉它们,或者通过GOTO和标签跳过它们。而且它们按照我想要的顺序执行。 - Michael Harvey
4个回答

一个简单的解决方案:右键点击快捷方式,选择属性,在常规选项卡中将快捷方式设置为隐藏,然后点击确定。
我刚刚测试了一下,它确实有效 - 在启动时不会使用隐藏的快捷方式。
我在以下文件夹上进行了操作: C:\Users\USER-NAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup。
要撤销操作,以便在资源管理器中看到隐藏文件,您需要在“查看”选项卡 > “选项”按钮 > “查看”选项卡中设置“显示隐藏的文件、文件夹和驱动器”。

7真让我吃惊。我没意识到隐藏文件不仅仅是将其从用户视野中隐藏...现在我得问一下,到底隐藏文件具体有什么作用...不管怎样,谢谢你。 - Off Kilter
4@OffKilter 在Linux中,这基本上和在文件名前加一个'.'是一样的。良好的程序应该忽略这些文件,但并不一定如此。 - Iron Gremlin
8@IronGremlin实际上不是这样的,在Linux中添加一个会改变文件名,因此如果应用程序按照原始名称查找文件,则无法找到该文件。在Windows上隐藏文件更类似于某种额外的chmod位,就像Windows中的“只读”属性对应于Linux中的chmod u-w一样。 - Ruslan
@Ruslan 你是错误的。在Linux下,以.开头的文件默认是隐藏的。 - Sod Almighty
26@SodAlmighty 这个是有争议的。Linux内核本身对于前导的没有任何意义。根据惯例,许多用户空间程序选择在目录列表中不显示它们。 - David
1@David,用于执行约定的关键用户空间程序是Linux shell。如果你输入echo *,你会看到除了点文件之外的所有文件列表。由于大多数程序从命令行获取文件列表而不是自己查询文件系统,所以这个约定得以传播。 - Mark Ransom
2@David...而且,有趣的是,它始于一个错误,但后来发现它很有用,所以他们保留了它。(该代码原本只是为了隐藏“。”和“..”。) - ssokolow
@Ruslan 我的回答旨在说明隐藏文件的一般效果,而不是传达其机制。无论在哪个“系统”中,一个“隐藏”的文件是否会被程序评估都是程序实现的细节。Windows对该机制有一个更抽象的实现,但归根结底,你运行的程序是否尊重该标志取决于程序开发者。 - Iron Gremlin

只需使用标准的启动配置工具即可。
以前,这是由msconfig处理的,它有一个启动选项卡,您可以取消选中单个启动项目以禁用它们。这至少可以追溯到Windows XP(甚至可能是95或98)。然而,正如@Scott在评论中指出的那样,运行msconfig需要管理员权限。
在Windows 8及更高版本中,这被移到了任务管理器中,该管理器增加了一个启动选项卡,用于相同的目的。此举还使非管理员用户能够使用该功能。
在此处禁用项目不会以任何方式更改启动文件夹中的链接。它只是通过注册表配置Windows不运行它。

msconfig无法在没有管理员权限的情况下运行。用户应该能够在登录时控制启动哪些内容,而无需具备管理员权限。... ... ... ... ... ... ... ... ... ... ... ... ... 再加上一点侮辱的是,如果您以普通用户“umberto”登录,然后作为管理员用户“albert”运行msconfig并进行身份验证,它会显示albert的启动文件夹,而不是umberto的。所以我认为这个答案根本就不起作用(至少对于旧版本的Windows来说,其中msconfig将是要使用的工具)。 - Scott - Слава Україні
@Scott Windows 7及之前的版本早已过了终止支持期,所以这部分回答主要是为了历史背景。关于管理员权限的观点很好,我会进行编辑。任务管理器可以由任何人运行,所以至少在所有支持的Windows版本上(Win8+,希望是当前系统的绝大多数),这个回答完全适用。 - TooTea
@TooTea "任务管理器可以被任何人打开" 通过组策略可以禁用它。我在使用的其中一台工作电脑上无法访问它。 - Yay295

我为了历史原因添加了这个答案。在DOS/Windows 3.x时代以及之后的一段时间里,这是一个常常遵循的“非官方惯例”(用于各种“保留文件”但让它们“不可见”-不仅限于启动菜单)。
总体思路:由于Windows使用文件扩展名(1)来确定如何运行文件(2),更改此扩展名将阻止应用程序识别该文件类型(3)。
(1) = 这是文件名中最后一个点(.)之后的部分。直到Windows '95,扩展名被限制为3个字符。现在默认情况下隐藏扩展名,例如需要更改文件资源管理器的设置才能显示它。(启动文件具有.LNK("链接")扩展名。)
(2) = 或者更准确地说:哪个程序/应用程序/可执行文件应该接受此扩展名的文件并以其作为输入运行。
(3) = 程序/应用程序/可执行文件与特定类型的文件相关联,根据其扩展名在设置下确定:在我的Windows 10系统上,我打开开始菜单(按下Windows键),然后输入"assoc"并选择"按文件类型选择默认应用程序"。在弹出的对话框中,您将在左列看到扩展名,在右列看到应用程序。尽管如此,它仍然有效。
注意事项:
(a) 需要更改设置或在命令行窗口中工作才能查看文件的扩展名。
(b) 此解决方案涉及更改文件名(并在完成后可能需要将其改回原样)。
惯例:
"惯例"是通过用.BAK替换文件的扩展名来创建备份文件(由于历史上的3个字符限制)。由于Windows引入了更长的文件名,保留原始扩展名并简单地添加.BAK可能更安全(这样可以更轻松地在不猜测的情况下删除)。
有时候,当创建同一文件的多个版本时,还可以添加时间戳,例如.BAK-20211022。
长的文件名限制显然允许使用更长的扩展名,例如.Backup-31-May-2021,但是懒散的打字者会尽量保持简短 :-). 保持一致是很好的。还要记住,ISO日期格式YYYYMMDD在按字母顺序排序时非常方便,可以在文件资源管理器或DIR命令中完成排序。

1@Scott 我理解为建议提问者将快捷方式文件重命名为以.bak结尾,这样可以防止Windows将其识别为快捷方式。 - ssokolow
1@Scott 这听起来与我所了解的Windows如何确定文件类型的一切都背道而驰,以至于我启动了我的Windows XP复古机器进行了快速检查。ren NetTime.lnk NetTime.lnk.bak确实使Windows无法将其识别为快捷方式...而是在登录时弹出一个“打开方式...”对话框。是否有较新版本的Windows实施了类似Linux风格的“通过头部检查确定文件类型”的检查或使用NTFS备用数据流来实现类似于存储在macOS资源派生物中的文件类型代码的功能? - ssokolow
@Scott,你能否提供一些建议,关于“总体思路”之后的句子,这个句子本应该解释机制,如何让它更加清晰明了? - frIT

当我运行NirSoft的WhatInStartup时,右键单击启动文件夹项目并选择“禁用”,它将在启动文件夹中创建一个名为~Disabled的文件夹,并设置隐藏属性。
我没有真正重新启动我的机器来验证这一点,但我无法想象如果Windows在启动时实际上打开了那个文件夹,NirSoft会以这种方式实现它。