在工业PC上有一个运行Windows PE的恢复分区。在此WPE环境中,有一些运行的批处理脚本为用户提供了一些选择。例如。 "按1为此,按2为#34;等
我目前正在开展一项操作,包括将文件移动和删除到外部驱动器。使用以下命令,我可以移动和删除文件:
::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
可以恢复它们,但当然它不是一个稳定状态。
根据this question on Super User,wpeutil reboot
可用于安全地重启PC并将所有数据刷新到磁盘。我希望这足以避免损坏目录,但似乎在移动和/或删除操作后索引被破坏,因为chkdsk /f
告诉我腐败索引已经恢复。
移动命令是否未同步运行?
即。批处理是否等到移动完成才执行下一个命令?
如何确保在移动和删除文件时我的索引不会被销毁?
答案 0 :(得分:0)
由于outputShapesForInputShapes
正在同步工作,并且move
应该将所有缓冲区刷新到磁盘,所以我应该做的很好。但是,我决定通过使用sync并等待它返回来确保所有缓冲区实际上都已刷新到磁盘(即USB驱动器)中:
wpeutil reboot
move /y "\TmpLogFile\*.gz" "%%d\Backup\TemporaryFiles\"
START /WAIT cmd /c "sync.exe" "-r -e %%d"
wpeutil reboot
保留分配给USB驱动器的字母。