powershell 将Invoke-WebRequest输出到带有日期时间的日志文件(任务调度程序的一个行程序)

qfe3c7zg  于 2023-01-26  发布在  Shell
关注(0)|答案(2)|浏览(201)

我正在尝试运行一个进程,需要在失败的情况下进行检查,所以我需要将Web内容记录到一个文件中,但我正在与Powershell语法作斗争。下面一行是我试图在任务调度程序中编写的:
powershell.exe -noexit -命令“调用Web请求http://google.com-输出文件C:\用户\用户_gc$(获取日期格式'yyyy-MM-dd HH:mm').txt”
通常powershell或Invoke-WebREquest会抱怨get-date命令“不支持给定的路径格式”
日期和时间在文件里对我来说很重要。

k0pti3hp

k0pti3hp1#

脚本

将以下内容保存在脚本文件TaskName.ps1中,确保根据需要更改变量

# Enter Your Path
$path = 'C:\Temp\'

# Enter Website You Want To Reach
$uri = 'https://google.com'

# For File Name
$timeStamp = (Get-Date).ToString('yyyy-MM-dd HHmm')

# Regex To Remove https://
$webSite = $uri -replace '^.+?(//)', '$`'

# Test If $path is Valid. If not, Create $path
switch (Test-Path $path) {
    'false' { mkdir -Path $path }
    Default { continue }
}

Invoke-WebRequest -Uri $uri |
    Out-File -FilePath "$path$webSite $timeStamp.txt" -Force

任务计划程序

操作:Start a program
设置:
程序/脚本:Powershell.exe
添加参数(可选):
-windowstyle hidden -executionpolicy bypass -File "C:\temp\TaskScheduler.ps1"

    • 注意:**这将需要管理员权限

结果

文件名:
"C:\temp\google.com 2023-01-05 1341.txt"

oo7oh9g9

oo7oh9g92#

日期格式中的:使路径无效(空格也可能导致您的问题)。尝试'yyyy-MM-dd-HHmm'或其他“安全”格式,使用适合您的文件系统安全字符。
具体参见Naming Conventions
使用当前代码页中的任何字符...但下列保留字符除外:

  • 〈(小于)
  • 〉(大于)
  • :(冒号)
  • “(双引号)
  • /(正斜杠)
  • \(反斜线)
  • |(竖条或竖线)
  • ?(问号)
    • (星号)

您可以通过尝试创建一个具有相似名称的文件来触发相同的错误,它将抛出一个错误:

PS c:\temp> new-item -ItemType File -Path ".\2023-01-05 19:51.txt" -Value "is this file created?"
new-item : The given path's format is not supported.
At line:1 char:1
+ new-item -ItemType File -Path ".\2023-01-05 19:51.txt" -Value "is thi ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [New-Item], NotSupportedException
    + FullyQualifiedErrorId : System.NotSupportedException,Microsoft.PowerShell.Commands.NewItemCommand

相关问题