gpt4 book ai didi

batch-file - 如何在删除失败时停止批处理脚本

转载 作者:行者123 更新时间:2023-12-04 01:42:44 28 4
gpt4 key购买 nike

我们有一个删除文件( del )和目录( rd )的批处理脚本。如果这些删除语句中的任何一个失败,有谁知道如何停止(失败)脚本的执行?如果文件/目录被 Windows 锁定,它们可能会失败。谢谢。

更新

我正在使用的语句:

电话:del *.* /S /Q
研发:FOR /D %%G in (*) DO RD /s /q %%G

最佳答案

如需删除文件,您可以先尝试 ren (重命名)文件。ren如果文件被锁定,则将 ERRORLEVEL 设置为 1。在文件名周围添加引号。

@echo OFF

:: Delete all files, but exit if a file is locked.
for %%F in (*.*) do (
@echo Deleting %%F
ren "%%F" tmp 2> nul
if ERRORLEVEL 1 (
@echo Cannot delete %%F, it is locked.
exit /b 1
)
del tmp
)

我怀疑您可以对目录执行相同的操作,但我似乎无法弄清楚如何锁定目录以便我可以进行测试。以下可能有效:
:: Remove all directories, but exit if one is locked.
FOR /D %%G in (*) DO (
@echo Removing %%G
ren "%%G" tmpdir 2> nul
if ERRORLEVEL 1 (
@echo Cannot remove %%G, it is locked
exit /b 1
)
RD /s /q tmpdir
)

关于batch-file - 如何在删除失败时停止批处理脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/560967/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com