2017-02-06 14 views
0

説明:OPENFILESとNET FILEを持つ多くの試行の後 閉じる開いているすべてのSHARED PDFファイル(ので、そのファイルを上書きすることができます)PSfile閉じる共有PDFのオープン - たかっれているもののREGEX

を、私は最終的に使用するようになりましたPSFILEはオープンされたPDFファイルを照会およびクローズすることができますが、PSFILEはオープンファイルIDを括弧で囲んで報告するため、ブラケットのためファイルを閉じるコマンドは完了しません。

以下の私のコピーと貼り付けコードを言い訳してください...私はので、私は(正規表現の部分)以下はfindstrコマンドが実際に何をしているのかわからないだが、すべてがPDFの

例を開いた見つけるように見えるん学んでいます:

for /F %a in ('psfile \\servername ^|findstr /i "\\.*\.pdf"') do psfile \\servername %a /c 

上記のコードの結果は、開いているPDFが見つかります。注意ためのID番号コードの最後の部分の周りにブラケットのID

[2214593372] D:\PATH TO\FILE.PDF 
User: USERNAME 
Locks: 0 
Access: Read 

周りブラケット
: PSFILEは、この形式で結果を表示

do psfile \\servername %a /c 

レポート - お知らせブラケット

psfile \\wgdfp01 [2214593372] /c 

No files opened remotely on SERVERNAME. 

私はそれがブラケットを報告しないために得ることができれば、誰もが私を助けてください... ...その後、コードの最後の部分は動作するはずです:その後、障害を報告

{EDIT} 応答は常に[NNNNNNNNNNN]なりN = 0-9 私はちょうどそれだけコマンドに括弧内の数字を渡す必要があります。 私は正規表現のために試したさまざまな組み合わせであなたを退屈させません。 しかし、私が何かを^ _それは|現時点では期待していません。

ありがとうございました

答えて

0

これは問題を解決するようです。

@ECHO OFF 
FOR /f %%A IN ('psfile \\SERVERNAME ^| findstr /i "\\.*\.pdf"') DO call:CallFunction %%A 

GOTO Exit 

:CallFunction 
SET foo=%~1 
SET foo=%foo:[=% 
SET foo=%foo:]=% 
psfile \\SERVERNAME %foo% /c 

:Exit 
関連する問題