Push-Location solution foreach ($problem in 1..5) { clang-cl "$problem.cpp" /O2 "-fsanitize=address,undefined" } Pop-Location Remove-Item -Recurse output mkdir .\output $time_output = @() foreach ($problem in 1..5) { mkdir output/$problem foreach ($genfile in Get-ChildItem "generator/$problem") { if ($genfile.Name -match "(.+)\.in") { $genfile_id = $Matches[1] Copy-Item $genfile output/$problem } elseif ($genfile.Name -match "(.+)\.cpp") { $genfile_id = $Matches[1] Push-Location "generator/$problem" clang-cl $genfile.Name /O2 "-fsanitize=address,undefined" Pop-Location & "./generator/$problem/$genfile_id.exe" > "./output/$problem/$genfile_id.in" } $time = (Measure-Command { Get-Content "./output/$problem/$genfile_id.in" | & "./solution/$problem.exe" > "./output/$problem/$genfile_id.out" }).TotalSeconds $time_output += "Problem $problem test point $genfile_id time: $time s." } } foreach ($line in $time_output) { Write-Output $line }