2017-11-18 5 views
0

のために聞いて私は、PowerShellスクリプトがやって持って次PowerShellスクリプトファイル

# Lists txt files, remove 'newline' in files, move them to another folder 

$files = @(Get-ChildItem c:\temp\*.txt) 
$outputfolder = "c:\temp\fixed" 

     foreach ($file in $files) 
       { 
       (Get-Content $file -Raw) -replace "`n",'' | Set-Content $file 
       Move-Item $file $outputfolder 
       } 

私は目を覚まして、新しいのためのリスニングスクリプトを維持する目的でいくつかしばらくサイクル(またはその他のルーチン)を追加したいと思います処理されるファイル。 c:\tempフォルダに新しい着信ファイルが検出されると、スクリプトはそれらを自動的に処理する必要があります。おそらく、5秒ごとにディレクトリをチェックするために、いくつかの "スリープ"コマンドを使用して達成することができます。

良い提案ですか?

+0

「-2」票が好きですが、理由は何ですか? 私はX、Y、Zを試しましたが、彼らは働いていないという欠点を除けば、これは良い質問だと思います。 たぶんどこから始めたらいいのかわかりません。これを見守って、答えが得られるかどうかを知ることができます。 –

+0

ありがとう@RossLyons、私はあなたに同意します。誰もが何の説明もなく否定的に投票するのは初めてではない。ところで、私は投票について気にしない。私は自分自身の解決策を見つけました。私は誰の利益のためにそれを掲示します。これはフォーラムの精神です。あなたの言葉をありがとう。 –

答えて

0

youreのファイルを移動しているので - 最も簡単な方法は、while 1ループ

1

これを行うための基本的な方法にラップするだろうことは次のとおりです。

while ($true) { 

    # Your script here 

    Start-Sleep -Seconds 5; 
} 

次の方法が少しだけ複雑です。 .ps1ファイルにスクリプトを保存し、Windowsタスクスケジューラを使用して5秒ごとにスクリプトを実行できます。

これらの方法はどちらも基本的なので、あなたはすでにそれらを知っているはずですが、それを使用していない理由を説明するのは妥当ではないでしょうか?おそらく、あなたはdownvotedされ、

第3の選択肢は、と一緒にRegister-ObjectEventを使用することです。このオプションはかなり高度です。 StackOverflowelsewhereに例があります。これは、リソースの消費量がより少ないという利点がありますが、サービスをオーサリングするためのメソッドを使用しているため、単一の釘を駆動するために釘打ちを使用するようなものです。

+0

私たちは「何かを知っているはずです」という否定投票は、非常に貧しい言い訳です。自分自身と@Marco Falzoneのような人たちは、私たちにはそれほど明白ではないかもしれないので、このような提案のためにここに来ています。 「あなたはすでにこれを知っているはずです...」のような否定的な光を指摘すると、私の視点では学習の妨げになります。 それ以外は!答えをいただきありがとうございます。遊ぶための出発点と学習する新しいトピックを少なくとも提供します。 –

+1

@RossLyons私はコメントなしのdownvotesが役に立たないことに同意し、それが私がしたように答えた理由です。 –

0

私の投稿には否定的な票が本当に分かりません。これはいくつかの調査と試行後の私の解決策です。それは他の人にとっては有用かもしれません。

# The following script listens for new files in a folder and processes them 
# 
# BEGIN SCRIPT 

$folder = 'c:\temp'    # My path 
$filter = '*.*'     # File types to be monitored 

$fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{ # Listening function 
IncludeSubdirectories = $false    # Put "True" to scan subfolders 
EnableRaisingEvents = $true 
NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite' 
} 
$onCreated = Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action { 
$path = $Event.SourceEventArgs.FullPath    
$name = $Event.SourceEventArgs.Name     
$changeType = $Event.SourceEventArgs.ChangeType  
$timeStamp = $Event.TimeGenerated     
$destination = 'c:\temp\fixed\'      
$outfile = $destination + $name 
Write-Host "The file '$name' was $changeType and processed at $timeStamp" -ForegroundColor Yellow # Log message on the screen 
(Get-Content $path -Raw) -replace "`n",'' | Set-Content -path $outfile 
Remove-Item $path # Delete original files 
} 

# END SCRIPT 
関連する問題