我有一个包含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
这是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不存在。
任何人都可以帮助我。谢谢
答案 0 :(得分:0)
您正试图重命名由Start-Transcript打开并正在使用的文件,这将不起作用。