Я вижу пару проблем с вашим кодом PowerShell:
Set-Location
не возвращает никакого вывода, поэтому переменная $database
пуста. foreach ($database in $database)
Вы используете ту же переменную, что должен удерживать список баз данных как переменную цикла. Используйте переменную как переменную цикла. Кроме того, поскольку $database
пуст (см. Выше), PowerShell просто пропустит цикл. psql
, иначе вы получите всю строку (включая информацию о владельце, кодировке и т. д.). --%
останавливает PowerShell от разбора остальной части командной строки, поэтому ваша переменная $database
в имени выходного файла не будет pg_dump
. Измените код на что-то вроде этого:
Set-Location 'E:\Exxellence\PostgreSQL\9.5\bin'
$databases = (.\psql -U postgres -l) -match '^ \S' | ForEach-Object {
($_ -split '\s+\|\s+')[0].Trim()
} | Where-Object {
$_ -match '^(beheer|forms|loket|kcs|mo|alfresco)$'
}
foreach ($db in $databases) {
.\pg_dump -h localhost -p 5432 -U postgres -F c -b -f "${db}.backup" $db
}
или вот так:
Set-Location 'E:\Exxellence\PostgreSQL\9.5\bin'
(.\psql -U postgres -l) -match '^ \S' | ForEach-Object {
($_ -split '\s+\|\s+')[0].Trim()
} | Where-Object {
$_ -match '^(beheer|forms|loket|kcs|mo|alfresco)$'
} | ForEach-Object {
.\pg_dump -h localhost -p 5432 -U postgres -F c -b -f "${_}.backup" $_
}
, и он должен делать то, что вы хотите.
Примечание. Фильтр для имен базы данных предполагает, что это точные имена. Если это только частичные имена, измените строку на $_ -match 'beheer|forms|loket|kcs|mo|alfresco'
.
Намного проще
var timer;
function setTimer(event){
if(timer)
{
clearInterval(timer)
}
var timerValue = document.getElementById("timerstart").value ;
timer = setInterval(function(){
if(timerValue > 0){
document.getElementById("timer").innerHTML=timerValue;
timerValue --;
} else {
clearInterval(timer)
}
},1000);
}
<div>
<label>Start Timer After(seconds)</label>
<input type="text" name="timerstart" id="timerstart" />
</div>
<button onclick="setTimer(event)" >Start Timer</button>
<div ><span>Timer : </span><span id="timer"></span></div>
Вот простой пример:
var sec = 10;
$('#btn').on('click', function(){
var timer = setInterval(function(){
var sec = parseInt($('#timer').val());
if(sec>0) {
sec--;
$('#timer').val(sec);
} else {
foo();
clearInterval(timer);
}
}, 1000)
});
function foo(){
alert('Timer ended!');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="timer" value="10" /><button id="btn">Start timer</button>