Powershell脚本在运行psql命令

时间:2016-06-13 12:25:49

标签: postgresql powershell

我正在尝试使用Powershell在新文件上运行脚本。脚本我上网看起来像这样。

### SET FOLDER TO WATCH + FILES TO WATCH + SUBFOLDERS YES/NO
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "c:\folder_to_lookat"
$watcher.Filter = "*.*"
$watcher.IncludeSubdirectories = $true
$watcher.EnableRaisingEvents = $true  
### DEFINE ACTIONS AFTER A EVENT IS DETECTED
$action = { $path = $Event.SourceEventArgs.FullPath
            $changeType = $Event.SourceEventArgs.ChangeType
    $logline = "COPY new FROM '$path' DELIMITER '#';"
    Write-Host "New File indicated"
            Clear-content C:\script_to_run.txt
    $script = Get-Content C:\original_script.txt
    $script[0] = $logline
    $script | Out-File C:\script_to_run.txt
    psql -d postgres -U postgres -w -c "\i C:\script_to_run.txt"
    Write-Host "New file caculated!"
          }    
### DECIDE WHICH EVENTS SHOULD BE WATCHED + SET CHECK FREQUENCY  
$created = Register-ObjectEvent $watcher "Created" -Action $action
while ($true) {sleep 5}

此脚本检查文件夹中是否有新文件。如果有,用psql运行脚本来做某事。但是,有一些问题。

  1. 它给了我多个        写主机“新文件指示”
           写主机“新文件计算!” 对于文件夹中的单个新文件。这真的不应该发生。

  2. psql脚本无法运行。             psql -d postgres -U postgres -w -c“\ i C:\ script_to_run.txt” 这一部分。

  3. 即使它给了我多个写主机,Postgres也没有发生任何事情。没有一个变化。 script_to_run.txt脚本很安静,只需几秒即可完成。

    psql Line本身运行得非常好,如果我只是输入它并且不使用任何PowerShell脚本。

    Picture of Powershell running psql script

    有什么我想念的东西吗? (就像fflush一样)我是Powershell的新手,对任何事情都不确定。

    感谢阅读!

0 个答案:

没有答案