首页 > 解决方案 > 如何检测调用powershell脚本的批处理文件是否由Windows启动事件运行

问题描述

有一个调用 Powershell 脚本的批处理文件,我在 Windows 启动文件夹中创建了该批处理文件的快捷方式,因此每次 Windows 启动时都会运行 Powershell 脚本。我只想知道我的Powershell脚本如何在运行时检测它是在Windows启动事件期间被批处理文件调用,还是在用户手动运行批处理文件时被批处理文件调用。

标签: windowspowershellbatch-filestartup

解决方案


如果当用户运行时,他们只会直接运行批处理文件而不是通过启动快捷方式,那么您可以设置启动快捷方式以在运行时将参数传递给批处理。

右键单击快捷方式并选择属性。在目标字段中,然后添加一个空格1

例如,如果是"C:\MyDir\MyScript.bat",请将其更改为"C:\MyDir\MyScript.bat" 1

当您运行此快捷方式时,它将启动批处理文件,但也会将1变量中的值传递给批处理文件%1

接下来,在顶部的批处理文件中(或您想要的任何位置)添加以下内容。

@echo off
if "%1"=="1" (
   echo Hey I'm running at startup
)

如果批处理是从启动快捷方式运行的,则可以将该echo行替换为要运行的命令。


推荐阅读