代码之家  ›  专栏  ›  技术社区  ›  Picks Prabhakar

查看bat文件中的特定文件夹。自动提交和推送代码

  •  1
  • Picks Prabhakar  · 技术社区  · 7 年前

    我正在使用powershell代码查看特定文件夹。但我怎样才能逃出像这样的文件夹呢。git文件夹和类似文件的日志。txt?就像我正在监视所有更改并在此名为“test”的文件夹中创建事件一样。但每当我保存某个内容时,就会发生更改事件,它会提交并将其推送到bitbucket。同时。git文件夹也会因为提交和推送而触发更改事件。这就产生了循环。

    这是我的代码:

        ### SET FOLDER TO WATCH + FILES TO WATCH + SUBFOLDERS YES/NO
        $watcher = New-Object System.IO.FileSystemWatcher
        $watcher.Path = "path of test folder"
        $watcher.Filter = "*.*"
        $watcher.IncludeSubdirectories = $true
        $watcher.EnableRaisingEvents = $true  
    
        ### DEFINE ACTIONS AFTER AN EVENT IS DETECTED
        $action = { 
        $path = $Event.SourceEventArgs.FullPath
        $changeType = $Event.SourceEventArgs.ChangeType
        $logline = "$(Get-Date), $changeType, $path"
        Write-Host $path
        if ($path -contains '\.git\') { 
    
        }
        else{
        Add-content "\log.txt" -value $logline
    cd test
        git add .
        git commit -am "made auto changes"
        git push origin master
        }
        }    
        ### DECIDE WHICH EVENTS SHOULD BE WATCHED
    
        Register-ObjectEvent $watcher "Created" -Action $action
        Register-ObjectEvent $watcher "Changed" -Action $action
        Register-ObjectEvent $watcher "Deleted" -Action $action
        Register-ObjectEvent $watcher "Renamed" -Action $action
        while ($true) {sleep 5}
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Maximilian Burszley    7 年前

    $path 是一个 [System.String] 类型和否 [System.IO.FileInfo] [System.IO.DirectoryInfo] ):

    Regex :

    if ($path -notmatch '\\\.git\\') {
    

    String.Contains :

    if (-not $path.Contains('\.git\') {
    

    Wildcard :

    if ($path -notlike '*\.git\*') {