我有一个批处理脚本,它在发生备份事件后执行文件版本控制。此批处理脚本将写入普通的txt日志文件,并调用PowerShell脚本将此日志文件作为带有成功通知电子邮件的附件发送。我已经成功地释放了日志文件上的写锁,允许PS附加和发送文件,但是在整个序列完成后,批处理脚本不会停止。
-
Press any key to continue...
带着等待的壳
-
应用程序锁定的日志文件,除非释放该日志文件,否则将不允许脚本再次运行。
这是事件的顺序:
我唯一的停顿是在<bak_send_exec.bat>-它的唯一目的是启动PS脚本:
PowerShell.exe -noprofile -executionpolicy bypass
这将在周末凌晨1:00运行,因此不需要用户干预。
这个相互连接的批处理文件用时间戳重命名两个相同的文件(在不同的位置)。时间戳将写入一个变量,以便在使用PowerShell命令发送的通知电子邮件中使用。整个过程将记录到一个txt日志文件中(脚本再次运行时文件将被覆盖),日志文件将包含在前面提到的通知电子邮件中。
脚本调用:
初始启动命令:
触发版本控制过程并记录进程
versioncontrol_post.bat > TSLog.txt 2>&1
版本控制.bat:
执行主过程,然后以
CALL bak_send_exec.bat
怀疑的原因。。。整个文件的编码有三行,但如前所述,为了放松政策,必须这样做:
@ECHO OFF
PowerShell.exe -noprofile -executionpolicy bypass -file bak_send.ps1
PAUSE
执行主要过程,将临时日志(TSLog.txt)的副本复制到其最终主页,释放TSLog文件以处理其新副本,然后继续获取新副本并将其附加到电子邮件并发送电子邮件。程序的最后一行是
EXIT
错误查找告诉我问题不在PowerShell脚本,而在调用它的脚本中。取出PAUSE命令将导致PowerShell无法启动。
有人能解决这个问题吗
“功能”
?