バッチファイルを使用するプロセスがあります。要するに、プレーンテキストデータが繰り返し取得され、.txtファイルの末尾に追加されます後の処理のために。データが処理されると、.txtが削除されます。.txtファイルの最後にテキストを追加するバッチファイルがファイルをロックしています
">>"演算子を使用してデータを.txtファイルに追加し、次に「DEL」cmdを使用して.txtファイルを削除することで、これは非常に簡単で基本的な方法で実行されます。
ただし、1人のユーザーがこれを実行する際に問題が発生しています。彼らは.txtファイルにデータを追加することができますが、ファイルがロックされているように見えるので、削除することはできません。バッチファイルが削除しようとすると、次のメッセージが表示されます。
"プロセスは別のプロセスで使用されているため、ファイルにアクセスできません。
作成中の.txtファイルはネットワークドライブ上にあり、他のユーザーがファイルを削除(または変更など)することもできません。
問題が発生したユーザーがPCを再起動すると、そのファイルを編集して削除することができます(ファイルを使用しているユーザーのPCにプロセスがあるように思われる)。
以下のバッチファイルは、私が作った非常に単純化されたデモですが、ユーザーの問題は経験しましたが、他の人の問題はありません。これはもちろん「実際の」プロセスではありませんが、余分なコードがなくても問題を示しており、メインプロセスが行っていることとはまったく独立しています。
:: we want to repeatedly append text to the end of a txt file
echo test >> test.txt
echo test >> test.txt
echo test >> test.txt
pause
:: but then we cannot delete the file as it appears to be locked
del test.txt
pause
問題を持つユーザーは、単に他の10誰もがWindows 7を使用しているWindowsを使用して、新しいPCを持っているかもしれないことは、問題の根本ですが、私はなぜか分からないのですか?私はコマンドプロンプトがWin10のためにいくつかの変更を加えたことを理解していますが、彼らはかなり美しく見えます。
何か指摘していただければ幸いです。私は何時間もインターネットを精練していて、この問題のようなものは見つけられません。たぶん私は根本的に間違ったことをしていますので、誰もこれに遭遇していないでしょうか?
ありがとうございます。
私の最初の容疑者は、マシン上で実行されるマルウェア対策スキャナです。しかし、特にこのような単純なケースでは、共有違反を引き起こすのは珍しいことです。 – eryksun
ところで、コンソール(conhost.exe)はWindows 10では大幅に更新されましたが、AFAIKではcmdシェルで大幅な変更はありませんでした。変更が美容的であること、つまりコンソールUIが変更されたということです。 – eryksun