小编Cla*_*Lag的帖子

如何将bash字符串转换为日期?

我有一个包含字符串的文件:

2014-11-22 08:15:00
Run Code Online (Sandbox Code Playgroud)

... 代表Nov 22 2014 @ 8:15 AM.

我想解析这个字符串并将其与 BASH 中的日期函数一起使用以与当前日期进行比较。我有比较日期的代码,但两个日期都是由 BASH 生成的,并且很容易格式化和比较。但是,我无法使用字符串(从另一个系统收集)进行比较。

我试过这样的东西:

$ mydate=$(cat filewithstring);date -d $mydate
$ mydate=$(cat filewithstring);date -d '$mydate'
$ mydate=$(cat filewithstring);date -d $mydate "+%Y-%m-%d %H:%M:%S"
Run Code Online (Sandbox Code Playgroud)

我最终遇到如下错误:

日期:参数“08:00:00”缺少前导“+”;使用选项指定日期时,任何非选项参数必须是以 '+'* 开头的格式字符串

...或者...

日期:额外的操作数 '+%Y-%m-%d %H:%M:%S'

我知道如果我明确输入字符串,它工作正常:

$ date -d '2014-11-22 08:15:00'
Sat Nov 22 08:15:00 EST 2014
Run Code Online (Sandbox Code Playgroud)

最后,我希望做到以下几点:

  • 从“其他”服务器捕获并收集文件中的日期/时间字符串
  • 读取文件中的字符串
  • 将字符串中的日期/时间与当前日期/时间进行比较
  • 输出类似“此事件在 12 分钟前处理过”之类的内容

有任何想法吗?谢谢。

string bash shell date

4
推荐指数
1
解决办法
1万
查看次数

无法设置“无论用户是否登录都运行”

我有一个 Powershell 脚本来添加新的计划任务。它用于启动 PS1 文件,其中包括本地 SQL 框和远程 SQL 框上的一些 SQL 查询。

如果此脚本创建计划,我必须手动进行一项更改才能使其正常工作:我必须设置选项“无论用户是否登录都运行”。

这是函数:

function createschedule {
    $startdatetime = (get-date).AddMinutes(1).ToString("HH:mm")
    $taskName = "My Bestest Schedule"
    $action = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument '-file "C:\mypath\bin\mypowershellscript.ps1"'
    $trigger = New-ScheduledTaskTrigger -Once -At $startdatetime
    $settings = New-ScheduledTaskSettingsSet -StartWhenAvailable
    echo ""
    echo "Adding Basic parameterized task..."
    Register-ScheduledTask -TaskName $taskName -Trigger $trigger -Action $action -Setting $settings -User "Administrator" -description "Sitewatch v2 Collector" -RunLevel 1 | Out-null
    $trigger.RepetitionInterval = (New-TimeSpan -Minutes 1)
    $trigger.RepetitionDuration = (New-TimeSpan -Days 1000)
    echo "Adding …
Run Code Online (Sandbox Code Playgroud)

sql powershell scheduler task

1
推荐指数
1
解决办法
8590
查看次数

标签 统计

bash ×1

date ×1

powershell ×1

scheduler ×1

shell ×1

sql ×1

string ×1

task ×1