windows - 如何检测调用powershell脚本的批处理文件是否由Windows启动事件运行
问题描述
有一个调用 Powershell 脚本的批处理文件,我在 Windows 启动文件夹中创建了该批处理文件的快捷方式,因此每次 Windows 启动时都会运行 Powershell 脚本。我只想知道我的Powershell脚本如何在运行时检测它是在Windows启动事件期间被批处理文件调用,还是在用户手动运行批处理文件时被批处理文件调用。
解决方案
如果当用户运行时,他们只会直接运行批处理文件而不是通过启动快捷方式,那么您可以设置启动快捷方式以在运行时将参数传递给批处理。
右键单击快捷方式并选择属性。在目标字段中,然后添加一个空格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
行替换为要运行的命令。
推荐阅读
- c++ - 关于 FFTW3 guru 界面的困惑:3 个同时复杂的 FFT
- mysql - 如何将alter table应用于多个数据库?
- android - 无法从 getter setter 模式中 getJudul
- reactjs - 如何使用带有 Material UI Drawer 的 React Router 来更改点击内容?
- python - 运行示例 python 代码时内核死机
- javascript - 处理“ProtocolDeprecateCallback:不再需要协议模块 API 的回调参数”(Electron 7.0)
- android - SetBackgroundColor 到自定义适配器上的列表视图项不起作用
- ember.js - Ember 并发超时挂在 qunit
- swift - MapKit addAnnotation 与 addAnnotations
- ios - Catalyst 应用的 Firebase 权限被拒绝