windows@powershell@任务计划@自动任务计划@taskschd.msc.md

文章目录

    • 使用任务计划
    • windows中的任务计划
      • 任务计划命令行程序
      • 开发windows 应用中相关api
      • 传统图形界面
      • FAQ
    • schtasks 命令
      • 常见用法
          • 创建计划任务
          • 删除计划任务
          • 查询计划任务
          • 修改计划任务
          • 运行计划任务
    • PowerShell ScheduledTasks
      • 常用 cmdlet 简介
        • 1. `Get-ScheduledTask`
        • 2. `Register-ScheduledTask`
        • 3. `Unregister-ScheduledTask`
        • 4. `Set-ScheduledTask`
        • 5. `Start-ScheduledTask`
        • 6. `Disable-ScheduledTask`
        • 7. `Enable-ScheduledTask`
      • 学习方法
        • 1. 官方文档
        • 2. 示例练习
        • 3. 学习资源
    • 自动任务的触发器👺
      • `-At` 参数的时间格式
      • 示例
        • 每天在上午 9 点启动任务
        • 每天在下午 2 点半启动任务
        • 每周触发
        • 每月触发
      • 其他用例
        • 开机时自启动软件
      • 指定小间隔时间重复执行👺
        • 每小时触发的触发器举例
        • New-ScheduledTaskTrigger没有提供`Hourly`选项
      • 总结
        • 示例 1:创建一个每天上午 9 点运行的任务
        • 示例 2:创建一个每周一、三、五上午 9 点运行的任务
    • 查看特定计划任务的详情👺
    • 任务计划的限制👺
      • 使用第三方工具

使用任务计划

在 Windows 操作系统上,计划任务(Task Scheduler)是一个强大的工具,可以帮助用户自动化各种任务。使用命令行工具创建和管理计划任务可以大大提高效率。

windows中的任务计划

任务计划命令行程序

  • ScheduledTasks Module | Microsoft Learn
    • Register-ScheduledTask (ScheduledTasks) | Microsoft Learn
  • schtasks commands | Microsoft Learn

开发windows 应用中相关api

  • 使用任务计划程序 - Win32 apps | Microsoft Learn

传统图形界面

  • taskschdTask Scheduler Overview | Microsoft Learn

    命令行输入taskschd启动任务计划程序创建新的任务计划
    在这里插入图片描述在这里插入图片描述
    taskschd是windows自带的程序,十分古老但是有用C:\Windows\System32\taskschd.msc可以选择定期执行,也可以选择条件触发,比如开机启动(运行)
  • 可以配置权限等,操作丰富

FAQ

  • 需要注意的是,有些程序在启动时可能会需要管理员权限
    • 此时需要右键点击快捷方式,选择“属性”→“兼容性”→“以管理员身份运行此程序”,并点击“确定”按钮,以确保程序可以正常启动。
  • 另外,如果需要删除已经添加的开机自动运行程序,只需要在“启动”文件夹中删除相应的快捷方式即可。

以下是一些常用的命令行工具及其用法介绍:

schtasks 命令

schtasks 是 Windows 提供的用于管理计划任务的命令行工具。通过它可以创建、删除、查询、修改和运行计划任务。

常见用法

创建计划任务
schtasks /create /tn "任务名称" /tr "任务执行程序路径" /sc 计划类型 /st 开始时间

例如,每天上午9点运行一个备份脚本:

schtasks /create /tn "BackupTask" /tr "C:\Scripts\backup.bat" /sc daily /st 09:00
删除计划任务
schtasks /delete /tn "任务名称"

例如,删除名为 BackupTask 的任务:

schtasks /delete /tn "BackupTask"
查询计划任务
schtasks /query /tn "任务名称"

例如,查询名为 BackupTask 的任务:

schtasks /query /tn "BackupTask"
修改计划任务
schtasks /change /tn "任务名称" /tr "新的任务执行程序路径"

例如,修改 BackupTask 的脚本路径:

schtasks /change /tn "BackupTask" /tr "C:\Scripts\new_backup.bat"
运行计划任务
schtasks /run /tn "任务名称"

例如,立即运行 BackupTask

schtasks /run /tn "BackupTask"

PowerShell ScheduledTasks

除了 schtasks,也可以使用 PowerShell 脚本来管理计划任务

PowerShell 中的 ScheduledTask 模块提供了一组用于管理计划任务的 cmdlet。学习这些 cmdlet 可以帮助你高效地创建、修改、删除和管理计划任务。

以下是一些最常用的 ScheduledTask cmdlet 及其用法介绍:

常用 cmdlet 简介

1. Get-ScheduledTask

用于获取计划任务的信息。

Get-ScheduledTask -TaskName "BackupTask"
2. Register-ScheduledTask

用于注册(创建)新的计划任务。

$action = New-ScheduledTaskAction -Execute "C:\Scripts\backup.bat"
$trigger = New-ScheduledTaskTrigger -Daily -At 9am
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "BackupTask"
3. Unregister-ScheduledTask

用于删除计划任务。

Unregister-ScheduledTask -TaskName "BackupTask" -Confirm:$false
4. Set-ScheduledTask

用于修改现有计划任务。

Set-ScheduledTask -TaskName "BackupTask" -Action (New-ScheduledTaskAction -Execute "C:\Scripts\new_backup.bat")
5. Start-ScheduledTask

用于手动启动计划任务。

Start-ScheduledTask -TaskName "BackupTask"
6. Disable-ScheduledTask

用于禁用计划任务。

Disable-ScheduledTask -TaskName "BackupTask"
7. Enable-ScheduledTask

用于启用计划任务。

Enable-ScheduledTask -TaskName "BackupTask"

学习方法

1. 官方文档

PowerShell 的官方文档提供了详细的 cmdlet 说明和示例。可以通过以下命令访问特定 cmdlet 的帮助文档:

Get-Help <Cmdlet-Name> -Online

例如:

Get-Help Get-ScheduledTask -Online
2. 示例练习

动手实践是学习的最佳方法。创建一个测试环境,尝试使用不同的 cmdlet 完成以下任务:

  • 创建一个计划任务,并设置其触发条件和操作。
  • 修改计划任务的执行程序路径。
  • 禁用并重新启用计划任务。
  • 删除计划任务。
3. 学习资源

利用 PowerShell 社区和学习资源,例如:

  • PowerShell Gallery
  • Microsoft Learn
  • 各种 PowerShell 教程和书籍,如《Learn Windows PowerShell in a Month of Lunches》。

自动任务的触发器👺

了解自动任务的触发类型和时机是重要的;此外,有些任务启动后需要长期再后台运行,需要使用-Asjob选项

在 PowerShell 中使用 New-ScheduledTaskTrigger cmdlet 创建计划任务触发器时,-At 参数用于指定任务的启动时间。-At 参数需要一个时间值,表示任务应该在一天中的哪个时间点启动。

-At 参数的时间格式

-At 参数接受以下时间格式:

  • 24小时制,例如 "14:30" 表示下午 2:30
  • 12小时制,需要指定 AM 或 PM,例如 "2:30PM" 表示下午 2:30

示例

每天在上午 9 点启动任务
$trigger = New-ScheduledTaskTrigger -Daily -At 9am
每天在下午 2 点半启动任务
$trigger = New-ScheduledTaskTrigger -Daily -At "14:30"

除了 -Daily 触发器外,New-ScheduledTaskTrigger 还支持其他多种触发器类型,每种触发器类型可以使用不同的参数来定义任务启动规则。

每周触发
$trigger = New-ScheduledTaskTrigger -Weekly -At 9am -DaysOfWeek Monday,Wednesday,Friday

这个命令创建一个每周触发的任务,周一、周三和周五的上午 9 点启动。

每月触发
$trigger = New-ScheduledTaskTrigger -Monthly -At 9am -DaysOfMonth 1,15

这个命令创建一个每月触发的任务,每月的 1 号和 15 号的上午 9 点启动。

其他用例

开机时自启动软件

要创建一个在Windows开机时自动运行Notepad的计划任务,你可以使用PowerShell的Register-ScheduledTask cmdlet。

$Action = New-ScheduledTaskAction -Execute "notepad.exe"
$Trigger = New-ScheduledTaskTrigger -AtLogon #开机时自启动#设置此计划任务仅对指定用户生效,同时指定任务优先级
$Principal = New-ScheduledTaskPrincipal -UserId (Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -ExpandProperty UserName) -RunLevel Highest
#任务设置,包括电池电源状态时是否保持任务有效
$Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable
#可能需要管理员权限才能顺利运行
Register-ScheduledTask -TaskName "Start Notepad at Logon" -Action $Action -Trigger $Trigger -Principal $Principal -Settings $Settings

让我解释一下这个脚本的各个部分:

  1. $Action: 定义要执行的动作,这里是运行notepad.exe。

  2. $Trigger: 设置触发器为"AtLogon",意味着在用户登录时触发。

  3. $Principal: 设置任务运行的用户上下文。这里使用当前登录的用户,并设置为最高权限运行。

  4. $Settings: 配置任务的一些设置,如允许在电池供电时启动,当从电源切换到电池时不停止任务,以及在可用时启动任务。

  5. Register-ScheduledTask: 使用上面定义的参数注册这个计划任务。

要运行这个脚本,你需要以管理员权限打开PowerShell,然后复制粘贴上述代码并执行。

执行后,Windows将创建一个名为"Start Notepad at Logon"的计划任务,该任务将在每次用户登录时自动启动记事本。

注意:

  • 这个任务将在用户登录时立即运行,而不是在系统启动时。如果你想在系统启动时运行(即在任何用户登录之前),你需要将触发器改为 -AtStartup
  • 运行这个脚本需要管理员权限
  • 请确保你理解这个脚本的影响,因为它会在每次登录时自动打开记事本,这可能不是所有用户都想要的行为。

移除这个计划任务

Unregister-ScheduledTask -TaskName "Start Notepad at Logon"

指定小间隔时间重复执行👺

  • 这里的小间隔是指不少于1分钟的间隔
  • 更小的间隔需要配脚本实现,比如powershell的sleep命令
每小时触发的触发器举例
  • 自动任务有Daily,Weekly,Monthly,但是没有Hourly

创建一个每小时向桌面的 log.txt 文件追加当前时间日志的计划任务。这个任务将永久有效,除非你手动删除它。以下是实现这个功能的 PowerShell 脚本:

# 创建要执行的 PowerShell 脚本内容
$ScriptContent = @'
$logPath = [Environment]::GetFolderPath("Desktop") + "\log.txt"
$logMessage = (Get-Date -Format "yyyy-MM-dd HH:mm:ss") + " - Logged at this time"
Add-Content -Path $logPath -Value $logMessage
'@# 将脚本内容保存到文件
$ScriptPath = "$env:Userprofile\desktop\LogTimeScript.ps1"
$ScriptContent | Out-File -FilePath $ScriptPath -Force# 创建计划任务的动作
$Action = New-ScheduledTaskAction -Execute 'PowerShell.exe' -Argument "-windowStyle Hidden -NoProfile -ExecutionPolicy Bypass -File `"$ScriptPath`""# 创建计划任务的触发器(每小时运行一次,也可以修改为其他间隔,比如每分钟一次)
$Trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 1)
# 重复间隔小于1分钟也会报错!过于小也是out of range:
# Register-ScheduledTask: The task XML contains a value which is incorrectly formatted or out of range.
# (7, 27):Interval:PT10S# -RepetitionInterval (New-TimeSpan -Seconds 10) #默认无限重复下去
# -RepetitionDuration (New-TimeSpan -Days (365*10),如果是(365*100)也会报错 )
# ([TimeSpan]::MaxValue) #大过头了,out of range# 创建计划任务的主体(使用SYSTEM账户运行)
# $Principal = New-ScheduledTaskPrincipal -UserId 'SYSTEM' -LogonType ServiceAccount -RunLevel Highest# 创建计划任务的设置
# $Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable -RunOnlyIfNetworkAvailable:$false# 注册计划任务
Register-ScheduledTask -TaskName 'LogTimeRegularly' -Action $Action -Trigger $Trigger `
# -Principal $Principal -Settings $Settings -Force

这个脚本做了以下几件事:

  1. 创建一个小的 PowerShell 脚本,该脚本将当前时间写入桌面上的 log.txt 文件。
  2. 将这个小脚本保存到临时目录。
  3. 创建一个计划任务,每小段时间运行一次这个小脚本。
  4. 设置任务为永久运行(通过将重复持续时间设置为最大时间跨度)。

要使用这个脚本:

  1. 以管理员权限打开 PowerShell。

  2. 复制并粘贴上述整个脚本到 PowerShell 窗口中。

  3. 按 Enter 键运行脚本。

运行后,你将看到一个名为 “LogTimeRegularly” 的新计划任务被创建。这个任务将每小时向你桌面上的 log.txt 文件追加一行包含当前时间的日志。

New-ScheduledTaskTrigger没有提供Hourly选项

New-ScheduledTaskTrigger cmdlet 没有直接提供 -Hourly 选项

可能的原因和背景:

  1. 设计理念:
    Windows 任务计划程序的设计初衷可能更倾向于日常、每周或每月的任务,而不是每小时任务。这可能反映了大多数系统管理任务的常见需求。

  2. 灵活性:
    通过组合 -Once 触发器和重复设置,Microsoft 提供了更灵活的方法来创建各种时间间隔的任务,包括小时、分钟,甚至秒级的重复。

  3. 历史兼容性:
    任务计划程序的设计可能部分受到早期版本的限制和设计决策的影响。

  4. 避免过度使用:
    不直接提供 -Hourly 选项可能也是为了避免系统管理员过度使用高频率任务,这可能会对系统性能产生负面影响。

  5. 一致性:
    保持与图形用户界面任务计划程序(taskschd.msc的一致性,那里也没有直接的"每小时"选项。

虽然没有直接的 -Hourly 选项,但我们可以通过以下几种方式创建每小时运行的任务:

  1. 使用 -Once 和重复设置(如我们之前的例子):
$Trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Hours 1) -RepetitionDuration ([TimeSpan]::MaxValue)
  1. 使用 -Daily 并设置 24 个触发器:
$Triggers = 0..23 | ForEach-Object { New-ScheduledTaskTrigger -Daily -At "$($_):00" }

总结

通过 New-ScheduledTaskTrigger cmdlet 和 -At 参数,你可以灵活地设置计划任务的触发时间。结合其他参数,如 -Daily-Weekly-Monthly,可以创建满足各种需求的计划任务触发器。以下是几个常见示例的完整代码:

示例 1:创建一个每天上午 9 点运行的任务
$action = New-ScheduledTaskAction -Execute "C:\Scripts\backup.bat"
$trigger = New-ScheduledTaskTrigger -Daily -At 9am
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "DailyBackupTask"
示例 2:创建一个每周一、三、五上午 9 点运行的任务
$action = New-ScheduledTaskAction -Execute "C:\Scripts\weekly_backup.bat"
$trigger = New-ScheduledTaskTrigger -Weekly -At 9am -DaysOfWeek Monday,Wednesday,Friday
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "WeeklyBackupTask"

查看特定计划任务的详情👺

主要有两类方法

打开window计划任务用GUI界面查看(方便直观taskschd.msc)

也可以用PowerShell查看某个计划任务的详情,包括触发器等信息,你可以使用Get-ScheduledTaskGet-ScheduledTaskInfo cmdlet。

以下是具体步骤:

  1. 首先,使用Get-ScheduledTask命令获取特定任务:
$taskName = "YourTaskName"
$task = Get-ScheduledTask -TaskName $taskName
  1. 然后,你可以查看任务的各种属性,包括触发器:
# 查看任务的基本信息
$task | Format-List *# 特别查看触发器
$task.Triggers# 查看动作
$task.Actions# 查看设置
$task.Settings
  1. 如果你想获取更详细的运行信息,可以使用Get-ScheduledTaskInfo:
Get-ScheduledTaskInfo -TaskName $taskName

这将显示上次运行时间、下次运行时间等信息。

  1. 如果你想要一个更全面的视图,可以将这些信息组合起来:
$taskInfo = Get-ScheduledTaskInfo -TaskName $taskName
$taskDetails = [PSCustomObject]@{TaskName = $task.TaskNameState = $task.StateDescription = $task.DescriptionAuthor = $task.AuthorTriggers = $task.Triggers | ForEach-Object { $_.ToString() }Actions = $task.Actions | ForEach-Object { $_.ToString() }LastRunTime = $taskInfo.LastRunTimeLastTaskResult = $taskInfo.LastTaskResultNextRunTime = $taskInfo.NextRunTime
}$taskDetails | Format-List

这段代码将创建一个包含任务主要信息的自定义对象,并以列表格式显示。

这是一个软件mydockfinder的开机自启计划任务

PS C:\Users\cxxu\Desktop> $task=Get-ScheduledTask -taskname mydockfinder
PS C:\Users\cxxu\Desktop> $taskTaskPath                                       TaskName                          State
--------                                       --------                          -----
\                                              MyDockFinder                      Ready#查看活动内容
PS C:\Users\cxxu\Desktop> $task.ActionsId               :
Arguments        :
Execute          : C:\exes\MyDockFinder\dock_64.exe
WorkingDirectory :
PSComputerName   :
#查看触发器
PS C:\Users\cxxu\Desktop> $task.TriggersEnabled            : True
EndBoundary        :
ExecutionTimeLimit :
Id                 :
Repetition         : MSFT_TaskRepetitionPattern
StartBoundary      :
Delay              :
UserId             :
PSComputerName     :PS C:\Users\cxxu\Desktop> $task.Triggers|select *Enabled               : True
EndBoundary           :
ExecutionTimeLimit    :
Id                    :
Repetition            : MSFT_TaskRepetitionPattern
StartBoundary         :
Delay                 :
UserId                :
PSComputerName        :
CimClass              : Root/Microsoft/Windows/TaskScheduler:MSFT_TaskLogonTrigger
CimInstanceProperties : {Enabled, EndBoundary, ExecutionTimeLimit, Id…}
CimSystemProperties   : Microsoft.Management.Infrastructure.CimSystemProperties

这是一个在指定时分秒时间打开软件notepad的计划任务的例子

PS C:\Users\cxxu\Desktop> $task=Get-ScheduledTask -taskname openNotepadAtspecifictime
PS C:\Users\cxxu\Desktop> $task.Triggers|select *Enabled               : True
EndBoundary           :
ExecutionTimeLimit    :
Id                    :
Repetition            : MSFT_TaskRepetitionPattern
StartBoundary         : 2024-07-30T20:16:11+08:00
RandomDelay           :
PSComputerName        :
CimClass              : Root/Microsoft/Windows/TaskScheduler:MSFT_TaskTimeTrigger
CimInstanceProperties : {Enabled, EndBoundary, ExecutionTimeLimit, Id…}
CimSystemProperties   : Microsoft.Management.Infrastructure.CimSystemPropertiesPS C:\Users\cxxu\Desktop> $task.ActionsId               :
Arguments        :
Execute          : notepad.exe
WorkingDirectory :
PSComputerName   :

任务计划的限制👺

在 Windows 计划任务中,触发器的最小间隔时间是 1 分钟。

尽管允许你指定在某个时分秒执行某个任务,但是不允许过小间隔(比如5秒间隔)去执行某个任务

如果你需要更小的间隔时间(例如每隔 5 秒钟执行一次),你可以考虑以下替代方案之一:

  1. 使用循环和延迟:编写一个 PowerShell 脚本,它会进入一个循环,每隔 5 秒钟执行一次操作。这种方法不使用计划任务,而是直接运行脚本。

  2. 使用第三方工具:一些第三方计划任务工具允许更小的时间间隔。

使用第三方工具

如果需要计划任务的功能,可以使用第三方工具,如 Task Scheduler Managed WrapperNSSM(Non-Sucking Service Manager),但是这些工具需要额外安装和配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/386939.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git远程仓库推送

这里我只连接了两个站点的远程仓库&#xff0c;一个是国内的Gitee&#xff0c;另一个是Github&#xff0c;这两个站点的连接方式主要有两种&#xff0c;第一种就是通过https来连接远程仓库&#xff0c;另一种是通过ssh公钥来连接&#xff0c;这两个站点练接的大致过程都是一样的…

我出一道面试题,看看你能拿 3k 还是 30k!

大家好&#xff0c;我是程序员鱼皮。欢迎屏幕前的各位来到今天的模拟面试现场&#xff0c;接下来我会出一道经典的后端面试题&#xff0c;你只需要进行 4 个简单的选择&#xff0c;就能判断出来你的水平是新手&#xff08;3k&#xff09;、初级&#xff08;10k&#xff09;、中…

4 款最佳 C# 无头浏览器

摘要&#xff1a; 在当今大数据时代&#xff0c;高效的数据采集成为众多项目的关键一环。对于偏好C#语言的开发者而言&#xff0c;无头浏览器是实现网页自动化交互、数据抓取的强大工具。本文将深入探讨四款顶尖的C#无头浏览器库&#xff0c;分析它们的特性和应用场景&#xf…

怎么把C盘分成两个盘?让C盘分区更简单,赶快试试!

在日常使用电脑的过程中&#xff0c;有时我们可能希望将C盘分割成两个独立的分区&#xff0c;以便更好地管理文件和数据。这种操作需要谨慎进行&#xff0c;因为错误的分区操作可能导致数据丢失。那么&#xff0c;我们该怎么把C盘分成两个盘呢&#xff1f;下面&#xff0c;我将…

lua 游戏架构 之 游戏 AI (六)ai_auto_skill

定义一个为ai_auto_skill的类&#xff0c;继承自ai_base类。ai_auto_skill类的目的是在AI自动战斗模式下&#xff0c;根据配置和条件自动选择并使用技能。 lua 游戏架构 之 游戏 AI &#xff08;一&#xff09;ai_base-CSDN博客文章浏览阅读379次。定义了一套接口和属性&#…

vue3在元素上绑定自定义事件弹出虚拟键盘

最近开发中遇到一个需求: 焊接机器人的屏幕上集成web前端网页, 但是没有接入键盘。这就需要web端开发一个虚拟键盘,在网上找个很多虚拟键盘没有特别适合,索性自己写个简单的 图片: 代码: (代码可能比较垃圾冗余,也没时间优化,凑合看吧) 第一步:创建键盘组件 为了方便使用…

3.2.微调

微调 ​ 对于一些样本数量有限的数据集&#xff0c;如果使用较大的模型&#xff0c;可能很快过拟合&#xff0c;较小的模型可能效果不好。这个问题的一个解决方案是收集更多数据&#xff0c;但其实在很多情况下这是很难做到的。 ​ 另一种方法就是迁移学习(transfer learning…

c++如何理解多态与虚函数

目录 **前言****1. 何为多态**1.1 **编译时多态**1.1.1 函数重载1.1.2 模板 **1.2 运行时多态****1.2.1 虚函数****1.2.2 为什么要用父类指针去调用子类函数** **2. 注意****2.1 基类的析构函数应写为虚函数****2.2 构造函数不能设为虚函数** **本文参考** 前言 在学习 c 的虚…

打造重庆市数字化教育“新名片”,广阳湾珊瑚中学凭实力“出圈”!

分布于教学楼连廊顶部的智能照明设备,根据不同的时间和场景需求自动调节灯光亮度和开关状态;安装于各个教室内的智能黑板、学校同步时钟、学生互动设备,在极简以太全光网的赋能下,为师生提供丰富的教学体验与学习支持......行走于重庆市广阳湾珊瑚中学,像是与充满科技感的“校园…

病理AI领域的基础模型汇总|顶刊专题汇总·24-07-26

小罗碎碎念 本期文献主题&#xff1a;病理AI领域的最新基础模型 今天的推文是一期生日特辑&#xff0c;定时在下午六点二十一分发表&#xff08;今天农历六月二十一&#xff0c;哈哈&#xff09;&#xff0c;算是自己给自己的24岁生日礼物&#xff0c;希望24岁这一年&#xff0…

ollama本地部署大语言模型记录

目录 安装Ollama更改模型存放位置 拉取模型GemmaMistralQwen1.5(通义千问)codellama 部署Open webui测试性能知识广度问题1问题2 代码能力总结 最近突然对大语言模型感兴趣 同时在平时的一些线下断网的CTF比赛中&#xff0c;大语言模型也可以作为一个能对话交互的高级知识检索…

SSRF中伪协议学习

SSRF常用的伪协议 file:// 从文件系统中获取文件内容,如file:///etc/passwd dict:// 字典服务协议,访问字典资源,如 dict:///ip:6739/info: ftp:// 可用于网络端口扫描 sftp:// SSH文件传输协议或安全文件传输协议 ldap://轻量级目录访问协议 tftp:// 简单文件传输协议 gopher…

【JavaScript】函数声明和函数表达式的区别

文章目录 一、函数声明1. 定义方式2. 作用域提升&#xff08;Hoisting&#xff09;3. 块级作用域 二、函数表达式1. 定义方式2. 作用域提升&#xff08;Hoisting&#xff09;3. 自引用 三、其他区别1. 函数名2. 可读性和代码组织3. 使用场景 四、总结函数声明函数表达式 在Java…

【大模型系列】Video-LaVIT(2024.06)

Paper&#xff1a;https://arxiv.org/abs/2402.03161Github&#xff1a;https://video-lavit.github.io/Title&#xff1a;Video-LaVIT: Unified Video-Language Pre-training with Decoupled Visual-Motional TokenizationAuthor&#xff1a;Yang Jin&#xff0c; 北大&#x…

Java面试八股之@Qualifier的作用

Qualifier的作用 Qualifier 是 Spring 框架中的一个非常有用的注解&#xff0c;它主要用于解决在依赖注入过程中出现的歧义问题。当 Spring 容器中有多个相同类型的 Bean 时&#xff0c;Qualifier 可以帮助指明应该使用哪一个具体的 Bean 进行注入。 Qualifier 的作用&#x…

外设购物平台

目 录 一、系统分析 二、系统设计 2.1 系统功能设计 2.2 数据库设计 三、系统实现 3.1 注册功能 3.2 登录功能 3.3 分页查询所有商品信息功能 3.4 分页条件&#xff08;精确、模糊&#xff09;查询商品信息功能 3.5 购物车功能 3.6 订单管理功能 四、项…

【Opencv】模糊

消除噪声 用该像素周围的平均值代替该像素值 4个函数 blur():最经典的 import os import cv2 img cv2.imread(os.path.join(.,dog.jpg)) k_size 7 #窗口大小&#xff0c;数字越大&#xff0c;模糊越强 img_blur cv2.blur(img,(k_size,k_size)) #窗口是正方形&#xff…

云计算实训16——关于web,http协议,https协议,apache,nginx的学习与认知

一、web基本概念和常识 1.Web Web 服务是动态的、可交互的、跨平台的和图形化的为⽤户提供的⼀种在互联⽹上浏览信息的服务。 2.web服务器&#xff08;web server&#xff09; 也称HTTP服务器&#xff08;HTTP server&#xff09;&#xff0c;主要有 Nginx、Apache、Tomcat 等。…

C#使用csvhelper实现csv的操作

新建控制台项目 安装csvhelper 33.0.1 写入csv 新建Foo.cs namespace CsvSut02;public class Foo {public int Id { get; set; }public string Name { get; set; } }批量写入 using System.Globalization; using CsvHelper; using CsvHelper.Configuration;namespace Csv…

[数据集][目标检测]金属罐缺陷检测数据集VOC+YOLO格式8095张4类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;8095 标注数量(xml文件个数)&#xff1a;8095 标注数量(txt文件个数)&#xff1a;8095 标注…