2017-07-31 4 views
0

私はSterling B2B Integratorで働いていて、 "昨日"(前の日付)のファイルのみを収集するビジネスプロセスを作成しなければならないという問題は、B2Biにはそれを行うサービスとcolectionディレクトリには7000を超えるファイルがあるので、GetDocInfoサービスを使用してスターリングが崩壊する可能性があるため、日付をタグに集めることはできません。昨日からファイルを収集するためのスクリプトを作成する

私はコマンドラインアダプタを使用して、それを実行するスクリプトを呼び出すことにしました。

set var1=%1  /* UNC File Path */ 

set var2=%2  /* Source directory */ 

set var3=%3  /* "yesterday" date */ 

set var4=%4  /* save the list of files into a .txt*/ 

set var5=%5  /* copy the files from yesterday into this directory */ 

PUSHd **%var1%** & 
forfiles /p **%var2%** /s /C " cmd /c echo @path @FDATE | findstr /m **%var3%**" > %var4% & 
for /f %%a in (**%var4%**) do copy %%a **%var5%** & 

機能:スクリプトは昨日からファイルを収集し、特定のディレクトリにそれらを保存しなければならない問題は、スクリプトがいずれも動作しないということです。

例:

PUSHd "\\emea\e801\Public" & 
forfiles /p _AppData\CAMS\PDFS\Digital\CertificadoCancelado /s /C " cmd /c echo @path @FDATE | findstr /m "27/07/17"" > _Shared\_AppData\MFT\BackupSterling\temp_puente_PRO\Lista_DIGCRT02\ficherosAyer.txt & 
for /f %%a in (_Shared\_AppData\MFT\BackupSterling\temp_puente_PRO\Lista_DIGCRT02\ficherosAyer.txt) do copy %%a _Shared\_AppData\MFT\BackupSterling\temp_puente_PRO\Lista_DIGCRT02\DIGCRT02 & 

なぜこのスクリプトが動作しませんか?

答えて

0

構文が正しくないため、スクリプトが機能していません。変数名についてアスタリスクは何をしていますか?

ここでは、実行する必要があるものの中核をなす簡単なPowerShellスクリプトを示します。 Parms()ブロックが必要です。ファイルが正しくコピーされることを確認したら、Copy-Itemコマンドから-WhatIfを削除します。

サブディレクトリの構造がsrc_dirから変更されないことに注意してください。別のサブディレクトリに同じ名前のファイルを選択した場合、これはうまく動作しません。あなたは.BATスクリプトからこれを行う-must-場合

$src_dir = 'C:\src\t'  #var2 
$the_date = '2017-07-21' #var3 
$log_file = 'C:\src\xxx' #var4 
$dest_dir = 'C:\src\xxx' #var5 

if (Test-Path $log_file) { Remove-Item $log_file } 

Get-ChildItem -Path $src_dir -File -Recurse | 
    ForEach-Object { 
     if ((Get-Date $_.LastWriteTime -Format yyyy-MM-dd) -eq $the_date) { $_.FullName } 
    } | 
    Tee-Object -FilePath $log_file -Append | 
    Copy-Item -Destination $dest_dir -WhatIf 

は、Move-FilesDated.ps1など.ps1拡張子を持つファイル名に上記のスクリプトを置きます。その後、.batスクリプトから呼び出します。

powershell -NoProfile -File "Move-FilesDated.ps1" 
関連する問題