Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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 用于删除学生驱动器(G)内所有文件和文件夹的批处理脚本_Batch File_Batch Processing_Drive - Fatal编程技术网

Batch file 用于删除学生驱动器(G)内所有文件和文件夹的批处理脚本

Batch file 用于删除学生驱动器(G)内所有文件和文件夹的批处理脚本,batch-file,batch-processing,drive,Batch File,Batch Processing,Drive,你好,这是我的第一篇帖子,所以这里什么都没有。我目前正在与一位主管一起完成一项任务,他希望我创建一个批处理脚本,该脚本将快速输出学生(G)驱动器中的所有内容。当我运行这个命令时,它只删除文件。文件夹和应用程序根本不会被删除 这是我在.bat脚本中输入的内容 forfiles -p "G:\" -s -m *.* /D -0 /C "cmd /c del @path" 班楚 在CMD中,您应该使用RD(RMDIR)命令完全擦除文件夹及其下的所有文件 但是,您仍然需要删除G:\驱动器中的文件本身,

你好,这是我的第一篇帖子,所以这里什么都没有。我目前正在与一位主管一起完成一项任务,他希望我创建一个批处理脚本,该脚本将快速输出学生(G)驱动器中的所有内容。当我运行这个命令时,它只删除文件。文件夹和应用程序根本不会被删除

这是我在.bat脚本中输入的内容

forfiles -p "G:\" -s -m *.* /D -0 /C "cmd /c del @path"
班楚

在CMD中,您应该使用
RD
RMDIR
)命令完全擦除文件夹及其下的所有文件

但是,您仍然需要删除G:\驱动器中的文件本身,因为您无法删除其中的文件夹

这应该起到必要的作用:

@(SETLOCAL
  ECHO OFF
  SET "_Path=G:\"
)

REM Delete all Subdirectories and their File Contents
FOR /F "delims=:" %%_ IN ('
  dir /B /A:D "%_Path%*" ') do (
  RD /S /Q "%_Path%%%_\")

REM Delete all files in Root Folder:
DEL /F /Q  "%_Path%*" & DEL /F /Q /A:H "%_Path%*"
正如Mofi所指出的,隐藏目录在默认情况下不会显示,因此我要么运行两个循环,要么使用For循环,因为他提出了一个关于带前导或尾随空格的目录的问题,我改为使用DIR,并使用For/F循环来解析它,而不是使用For/D
For/D
,但是如果您没有这些要求,这些都是绒毛。

注意删除带有尾随空格的文件DEL可以完成任务

尝试删除隐藏的/System/Read-Only目录的示例-这些目录可以工作(当然,只要您处于提升的命令提示符下)

班楚

在CMD中,您应该使用
RD
RMDIR
)命令完全擦除文件夹及其下的所有文件

但是,您仍然需要删除G:\驱动器中的文件本身,因为您无法删除其中的文件夹

这应该起到必要的作用:

@(SETLOCAL
  ECHO OFF
  SET "_Path=G:\"
)

REM Delete all Subdirectories and their File Contents
FOR /F "delims=:" %%_ IN ('
  dir /B /A:D "%_Path%*" ') do (
  RD /S /Q "%_Path%%%_\")

REM Delete all files in Root Folder:
DEL /F /Q  "%_Path%*" & DEL /F /Q /A:H "%_Path%*"
正如Mofi所指出的,隐藏目录在默认情况下不会显示,因此我要么运行两个循环,要么使用For循环,因为他提出了一个关于带前导或尾随空格的目录的问题,我改为使用DIR,并使用For/F循环来解析它,而不是使用For/D
For/D
,但是如果您没有这些要求,这些都是绒毛。

注意删除带有尾随空格的文件DEL可以完成任务

尝试删除隐藏的/System/Read-Only目录的示例-这些目录可以工作(当然,只要您处于提升的命令提示符下)

那就做一下吧:

rd G:\. /S /Q
您还可以将
推送到dir,然后使用
和&
操作符简单地执行删除操作,以确保在执行
rd
命令之前完成
pushd
命令

pushd G:\ && rd . /S /Q
那就做一下吧:

rd G:\. /S /Q
您还可以将
推送到dir,然后使用
和&
操作符简单地执行删除操作,以确保在执行
rd
命令之前完成
pushd
命令

pushd G:\ && rd . /S /Q

为什么不简单地格式化驱动器呢?可能是因为您使用了搜索掩码。大多数文件夹中可能没有句号。请改用*搜索掩码。@Magoo可能是因为他指的是一个映射用户驱动器,它实际上是文件服务器上的一个文件夹,请从头到尾仔细阅读我对大多数贡献的解决方案的回答。无法删除所有文件和文件夹,包括隐藏文件和文件夹、只读文件、,etc./Q/X/V:StudDrv/FS:ntfsw为什么不简单地格式化驱动器?可能是因为您使用了搜索掩码,大多数文件夹中可能没有句点。请改用*搜索掩码。@Magoo可能是因为他指的是一个映射用户驱动器,它实际上是文件服务器上的一个文件夹,请从头到尾仔细阅读我对大多数贡献的解决方案的回答。无法删除所有文件和文件夹,包括隐藏文件和文件夹、只读文件、,etc./Q/X/V:StudDrv/FS:ntfst对于这样一个简单的任务,有很多代码,不是吗?@GerhardBarnard我喜欢你的答案。将删除隐藏的只读文件等,我通常更喜欢删除根目录并重新创建od,而不是使用单独的DEL来处理根目录中的任何文件,因此您的代码看起来非常优秀,并计划明天亲自测试,这肯定是一个罕见的情况,我更喜欢popD和PushD在未来,因为我通常使用push和pop来映射自己的sym链接或连接,因为我只在遇到路径长度问题时才会感到麻烦,但这确实是一个偏好问题。。对于这一点,这似乎是一条更好的捷径!:)批处理文件忽略以
开头的目录“eol=| delims=“
”,目录名中的code>。在目录名的开头使用分号的目录是不常见的,但仍然是可能的。两个
DEL
在第一个选项上使用时可能只是一个
DEL
(任何属性),该选项在使用时会覆盖内置默认值
/A-H
(所有隐藏属性除外)。我已经解释过,你只需要阅读这个答案。对于这么简单的任务来说,这是很多代码,不是吗?@GerhardBarnard我喜欢你的答案。将删除隐藏的只读文件等,我通常更喜欢删除根目录并重新创建od,而不是使用单独的DEL来处理根目录中的任何文件,因此您的代码看起来非常优秀,并计划明天亲自测试,这肯定是一个罕见的情况,我更喜欢popD和PushD在未来,因为我通常使用push和pop来映射自己的sym链接或连接,因为我只在遇到路径长度问题时才会感到麻烦,但这确实是一个偏好问题。。对于这一点,这似乎是一条更好的捷径!:)批处理文件忽略以
开头的目录“eol=| delims=“
”,目录名中的code>。在目录名的开头使用分号的目录是不常见的,但仍然是可能的。两个
DEL
在第一个选项上使用时可能只是一个
DEL
(任何属性),该选项在使用时会覆盖内置默认值
/A-H
(所有隐藏属性除外)。我已经向你解释了这一切