相关疑难解决方法(0)

批处理脚本重定向语法

有一天我用批处理脚本示例写了一个答案,有人指出,当您将输出重定向到文件时,如果您先重定向到文件,然后将您的命令、文本等(以下示例[1])。

该建议并未提及您不想这样做的任何原因,因此我开始进行一些调查,因为我一直在寻找本机方法以使事情看起来更干净一些。


常见方式示​​例

IF EXIST "%tmpfile%" DEL /Q /F "%tmpfile%"
ECHO Some Text Here>>"%tmpfile%"
ECHO A little more text here>>"%tmpfile%"
ECHO Some other text over here man>>"%tmpfile%"
ECHO Can Scooby please have a Scooby snack>>"%tmpfile%"
Run Code Online (Sandbox Code Playgroud)

示例更容易阅读方式

IF EXIST "%tmpfile%" DEL /Q /F "%tmpfile%"
ECHO>>"%tmpfile%" Some Text Here
ECHO>>"%tmpfile%" A little more text here
ECHO>>"%tmpfile%" Some other text over here man
ECHO>>"%tmpfile%" Can Scooby please have a Scooby snack
Run Code Online (Sandbox Code Playgroud)

显然,使用这种格式的命令从批处理脚本中读取逻辑要容易得多,ECHO但是如果在批处理脚本中使用这种方法作为标准存在任何问题,就会引起关注。

我在互联网上环顾四周,我能找到的最多的是下面引用的一个来源,声明不要在还包含其他重定向的命令行中使用此技术[2]


题 …

command-line batch-file

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

任务计划程序似乎没有像它应该的那样运行powershell脚本

我将以下 PowerShell 脚本保存为 test.ps1:

# test script
Write-Output "z" >> C:\path\to\log.txt
Run Code Online (Sandbox Code Playgroud)

在任务计划中,我将其设置为“无论用户是否登录都运行”。

触发器是“一次”,但我选中了“重复任务间隔: ”并设置为“ 5 分钟”。

在“操作”选项卡中,我有一个操作 - “启动程序”设置为“ powershell.exe ”,“添加参数(可选) ”设置为“ -file c:\path\to\test.ps1 ”和“启动于(可选) “设置为” c:\path\to ”。

在“历史记录”选项卡中我看到:

任务计划程序在任务“\test”的实例“{a1485114-69fe-4aa8-95ee-27d8f260591a}”中启动了操作“powershell.exe”。

所以看起来它对我有用,但 log.txt 既没有被创建也没有添加到。

有任何想法吗?

powershell scheduled-tasks windows-task-scheduler windows-10

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