我有一个包含字符串的文件:
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)
最后,我希望做到以下几点:
有任何想法吗?谢谢。
我有一个 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)