如何使用PowerShell处理服务的无限循环?

时间:2019-12-25 03:01:03

标签: powershell service nssm

我有一个包含infinity循环的powershell脚本。我想使用NSSM https://nssm.cc/description创建服务 但是,一旦我在脚本中执行了某些过程,该服务就无法正常工作。 这就是我创建服务的方式。

$NSSMPath = (Get-Command "D:\SERVICE\nssm-2.24\win64\nssm.exe").Source
$NameService = "TestService"
$PoshPath = (Get-Command powershell.exe).Source
$PoshScriptPath = "D:\SERVICE\TestService.ps1"
$arg = '-ExecutionPolicy Bypass -NoProfile -File "{0}"' -f $PoshScriptPath 

& $NSSMPath install $NameService $PoshPath $args

Start-Service $NameService
Get-Service $NameService

enter image description here

这是powersehll脚本。

for(;;)
{
Start-Transcript -Path "D:\SERVICE\logfile.txt"
Stop-Transcript 
}

通过此密码,该服务正在运行。我可以看到logfile.txt。但是一旦我像这样在循环内做一些处理

for(;;)
{
Start-Transcript -Path "D:\SERVICE\logfile.txt"
#add acnd check - will it work or not...
if(Test-Path -Path "D:\SERVICE\*.txt")
{
    Get-ChildItem -Path "D:\SERVICE\*.txt" | Rename-Item -NewName {[System.IO.Path]::ChangeExtension($_.Name, ".csv")}
}
Stop-Transcript 
}

服务正在运行,但是脚本不起作用,logfile.txt不存在。

任何人都可以帮助我。谢谢

1 个答案:

答案 0 :(得分:0)

您正试图重命名由Start-Transcript打开并正在使用的文件,这将不起作用。