Program dalam file batch membaca versi lama dari file yang baru diubah (XP)


0

Saya memiliki file batch normal, berjalan di XP. Pertama, program A merekomendasikan data (string) ke akhir file X.dll(di server). Kemudian program B membuka file, dan mencari data. Namun, kadang-kadang (biasanya), program B jelas membaca versi file sebelum string telah ditambahkan, terlepas dari kenyataan bahwa itu sedang dilakukan secara berurutan setelah program A telah kembali.

Jika kita memanggil dir X.dllantara A dan B, maka B membaca file yang diubah dengan benar.

Kumpulan file yang sama, berjalan pada mesin Windows 7 di jaringan yang sama, berfungsi dengan sempurna.

Adakah yang tahu apa yang sedang terjadi?


Pertanyaan juga diposting di Server Fault - serverfault.com/questions/171332/…
ChrisF

Apakah mungkin bahwa sistem file menunda penulisan file ke disk (kinerja)?
MrWhite

Itulah yang ingin saya ketahui .. dan jika demikian, apa yang harus saya lakukan.
Joel in Go

Jawaban:


1

Sepertinya B sedang berjalan sebelum A selesai. Salah satu cara untuk menghindari ini adalah dengan menggunakan MULAI. Jalankan A dengan perintah ini: start / wait a . File batch tidak akan berlanjut sampai A selesai berjalan.


Ide itu oke, tapi tidak dalam kasus ini; kami menjalankan program tanpa "mulai", yang memiliki efek yang sama dengan "mulai / tunggu". Program A juga menampilkan "selesai" ketika selesai, dan kami menampilkan "B mulai" sebelum memulai B, sehingga kita dapat melihat bahwa A benar-benar selesai sebelum B dimulai.
Joel in Go

@ Joel: Jika cache tulis diaktifkan pada drive yang berisi file data, itu mungkin menjadi faktor. Menonaktifkan caching tulis akan merusak kinerja, tetapi mungkin ada baiknya mencoba mengesampingkannya. Klik kanan drive di Explorer, Properties, tab Hardware, pilih drive dan klik Properties. Untuk memastikan Anda memiliki drive yang tepat, buka tab Volume dan klik Populate. Buka tab Kebijakan dan nonaktifkan cache tulis. Anda mungkin harus reboot. Jalankan kembali tes Anda. Jika berhasil, kami sedang mencari cara untuk menghapus cache tulis dengan cepat dari dalam file batch.
boot13

Ini adalah drive jaringan, dan hampir pasti telah menulis caching. (Jendela properti tidak menampilkan Hardware). Saya setuju, mungkin itulah masalahnya; seperti yang dikatakan di atas, melakukan "dir nama file" antara panggilan program bekerja.
Joel in Go
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.