如果存在文件夹 rmdir 文件夹 && mkdir 文件夹将不会执行之后的任何命令 &&
if exist folder rmdir folder && mkdir folder will not execute any command after that &&
允许我删除和创建文件夹的语法是什么,无论它之前(不)存在?
if exist folder rmdir folder && mkdir folder
将不起作用。既不将 &&
替换为 &
、||
、|
...
那么正确的语法是什么?
OS: Windows 2012
Shell: cmd.exe*
PS 只要满足两个条件,我可以接受基于 PS 的答案。 1) 它必须从 cmd.exe 开始 2) 如果遇到任何错误(如缺少权限),它必须向 cmd 标准输出提供有意义的错误。
由于您使用的 rmdir
没有 /S
开关,我假设感兴趣的文件夹是空的,那么为什么要删除并重新创建它呢?您可以简单地创建它并在它已经存在的情况下抑制错误消息,例如:
mkdir "folder" 2> nul
当然,此变体保留所有文件夹属性和所有者。
如果您坚持删除并重新创建文件夹,请使用:
rmdir "folder" 2> nul & mkdir "folder"
此变种会破坏所有文件夹属性和所有者。
如果文件夹不保证为空,则需要rmdir
的/S
开关; /Q
也有助于避免被提示真正删除文件夹,例如:
rmdir /S /Q "folder" & mkdir "folder"
允许我删除和创建文件夹的语法是什么,无论它之前(不)存在?
if exist folder rmdir folder && mkdir folder
将不起作用。既不将 &&
替换为 &
、||
、|
...
那么正确的语法是什么?
OS: Windows 2012 Shell: cmd.exe*
PS 只要满足两个条件,我可以接受基于 PS 的答案。 1) 它必须从 cmd.exe 开始 2) 如果遇到任何错误(如缺少权限),它必须向 cmd 标准输出提供有意义的错误。
由于您使用的 rmdir
没有 /S
开关,我假设感兴趣的文件夹是空的,那么为什么要删除并重新创建它呢?您可以简单地创建它并在它已经存在的情况下抑制错误消息,例如:
mkdir "folder" 2> nul
当然,此变体保留所有文件夹属性和所有者。
如果您坚持删除并重新创建文件夹,请使用:
rmdir "folder" 2> nul & mkdir "folder"
此变种会破坏所有文件夹属性和所有者。
如果文件夹不保证为空,则需要rmdir
的/S
开关; /Q
也有助于避免被提示真正删除文件夹,例如:
rmdir /S /Q "folder" & mkdir "folder"