在批处理中移动文件损坏目录在Windows PE中运行



在工业PC上有一个运行Windows PE的恢复分区。在此WPE环境上,有一些批处理脚本运行,可以为用户提供一些选择。例如。"为此按1,按2为2"等

我目前正在处理一个操作,其中包括将文件移动和删除到外部驱动器。使用以下命令,我可以移动并删除文件:

::Create a new folder on the external drive
if not exist "F:BackupTemporaryFiles" mkdir F:BackupTemporaryFiles
::Move log files
move /y "%dataVolume%systemLogFile*.log" "F:BackupTemporaryFiles"
move /y "%dataVolume%systemLogFile*.gz" "F:BackupTemporaryFiles"
::Delete PNG files
del "%dataVolume%systemLogImg*.png" /f/q
:: Reboot safely
wpeutil reboot

但是,在重新启动之后。使用chkdsk可以恢复,但当然不是一个稳定的状态。

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

移动命令不同步运行吗?

即。批次是否等到移动执行下一个命令之前才能完成?

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

由于move同步工作,并且wpeutil reboot应该冲洗所有缓冲区到磁盘,所以我应该对自己的工作很好。但是,我决定确保通过使用Sync并等待返回的所有缓冲区实际上都冲洗到磁盘(即USB驱动器(:

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

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

最新更新