1

在工业 PC 上,有一个运行 Windows PE 的恢复分区。在这个 WPE 环境中,有一些批处理脚本正在运行,为用户提供了一些选择。例如“这个按 1,那个按 2”等等。

我目前正在进行一项操作,包括将文件移动和删除到外部驱动器。使用以下命令,我可以移动和删除文件:

::Create a new folder on the external drive
if not exist "F:\Backup\TemporaryFiles\" mkdir F:\Backup\TemporaryFiles

::Move log files
move /y "%dataVolume%\system\LogFile\*.log" "F:\Backup\TemporaryFiles\"
move /y "%dataVolume%\system\LogFile\*.gz" "F:\Backup\TemporaryFiles\"

::Delete PNG files
del "%dataVolume%\system\LogImg\*.png" /f/q

:: Reboot safely
wpeutil reboot

但是,重新启动后,移动文件的源目录以及外部驱动器上的目标目录都已损坏。使用chkdsk它们可以恢复,但它当然不是一个稳定的状态。

根据Super User 上的这个问题wpeutil reboot可用于安全地重新启动 PC 并将所有数据刷新到磁盘。我希望这足以避免损坏的目录,但似乎在移动和/或删除操作后索引被破坏,因为chkdsk /f告诉我损坏的索引已恢复。

移动命令是否不同步运行?

即批处理不等到移动完成后才执行下一个命令?

如何确保在移动和删除文件时我的索引不会被破坏?

4

1 回答 1

0

由于move同步工作并且wpeutil reboot应该将所有缓冲区刷新到磁盘,我应该对我正在做的事情很好。但是,我决定通过使用同步并等待它返回来确保所有缓冲区都实际刷新到磁盘(即 USB 驱动器) :

move /y "\TmpLogFile\*.gz" "%%d\Backup\TemporaryFiles\"
START /WAIT cmd /c "sync.exe" "-r -e %%d"
wpeutil reboot

%%d持有分配给 USB 驱动器的字母。

于 2018-07-23T08:46:27.623 回答