我需要您的帮助来解决Powershell中的练习。 我必须编写一个仅在另一个脚本正在运行时才能运行的脚本。 例如,我必须运行一个脚本,该脚本删除早于1天的文件,而脚本会重新启动进程。
我尝试使用作业使脚本并行运行,但没有成功。
--The script to delete files
Get-ChildItem -Path "a path" -include *.txt -Recurse | Where-Object {$_.LastWriteTime -lt $DateToDelete} | Remove-Item -Force
--The script to restart a process
Get-Process notepad | Stop-Process | Start-Process
答案 0 :(得分:0)
我认为您的问题出在第二个脚本上,您无法重启类似的进程。
如果您在控制台中尝试了此行public Location GetLocation(long departmentId, long locationId)
{
UserDepartmentRole departmentRoleAlias = null;
FavouriteLocation favouriteAlias = null;
var departmentUserSubQuery = QueryOver.Of<User>()
.JoinAlias(user => user.DepartmentRoles, () => departmentRoleAlias)
.Where(() => departmentRoleAlias.Department.Id == departmentId)
.Where(() => departmentRoleAlias.IsActive)
.Select(user => user.Id);
var location = Session.QueryOver<Location>()
.JoinAlias(l => l.Favourites, () => favouriteAlias, JoinType.LeftOuterJoin)
.WithSubQuery.WhereProperty(() => favouriteAlias.User.Id)
.In(departmentUserSubQuery)
.Where(l => l.Id == locationId)
}
,则会提示您向要启动的进程请求Get-Process notepad | Stop-Process | Start-Process
,这是因为FilePath
不会向管道返回任何结果然后Stop-Process
没有从管道接收任何信息。
请点击此处查看how to restart process using PowerShell
使用以下代码将脚本作为作业运行:
Start-Process