Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 使用「;rmdir";功能,但保留指定的目录_Batch File_Cmd_Windows Console - Fatal编程技术网

Batch file 使用「;rmdir";功能,但保留指定的目录

Batch file 使用「;rmdir";功能,但保留指定的目录,batch-file,cmd,windows-console,Batch File,Cmd,Windows Console,我想要rmdir/s的功能,但我需要保留指定的目录rmdir/s删除指定目录之外的所有文件和子目录 我也尝试过使用del/s,但是在指定的目录中,我留下了空文件夹。我也需要删除那些文件夹 有关如何执行此操作的任何指导信息?最简单的方法是将目录更改为指定目录,并在“.”目录上调用rd命令。比如: cd toYourDirectory (or pushd toYourDirectory) rd /q /s . 2> nul /确保你不会被提示 /s-待办事项子文件夹、文件等 在 “.”-表

我想要
rmdir/s
的功能,但我需要保留指定的目录
rmdir/s
删除指定目录之外的所有文件和子目录

我也尝试过使用
del/s
,但是在指定的目录中,我留下了空文件夹。我也需要删除那些文件夹


有关如何执行此操作的任何指导信息?

最简单的方法是将目录更改为指定目录,并在“.”目录上调用rd命令。比如:

cd toYourDirectory (or pushd toYourDirectory)
rd /q /s . 2> nul
  • /确保你不会被提示
  • /s-待办事项子文件夹、文件等 在
  • “.”-表示当前目录
  • 2> nul-确保它不会报告 rd命令尝试删除自身时出现的错误(即 (你想要什么)

你的意思是你想清空一个目录而不删除它?你可以使用下面回答的rd命令。rd和rmdir是一样的,我非常感谢你的回答;然而,如果我要做两个陈述,我可能会使用rmdir和mkdir。。。for循环是一种过度杀戮LOL。rmdir和mkdir的效果完全相同。现在,除非有问题的文件夹中有您想要保留的系统/隐藏文件,否则文件夹上的rmdir可能不理想除非绝对必要,否则您永远不应该以这种方式迭代
dir
输出。直接使用
for
进行迭代时,Unicode文件名存在严重缺陷。在这种情况下,您可以简单地使用一个普通的
for
循环,内部带有一个条件。虽然我不太明白你为什么需要省略一个目录,但是使用rmdir和mkdir会丢失这个目录上的任何特殊权限(acl)。
FOR /F "USEBACKQ tokens=*" %%F IN (`dir /b /a:d /s "C:\Documents and Settings\Mechaflash\" ^| FIND /v /i "C:\Documents and Settings\Mechaflash\"`) DO (
 rmdir /s "%%F"
)
DEL /Q /F "C:\Documents and Settings\Mechaflash\*"
cd toYourDirectory (or pushd toYourDirectory)
rd /q /s . 2> nul