Batch file Batch file可从多个位置删除特定文本文件

Batch file Batch file可从多个位置删除特定文本文件,batch-file,Batch File,我编写了一个.bat文件,它在根文件夹的每个子文件夹中创建一个文本文件,显示子文件夹的内容。我现在遇到的问题是创建第二个.bat,它将从子文件夹位置删除所述文本文件。我用来创建.txt文件的.bat位于下面。非常感谢您的帮助 @echo off IF EXIST "R:\Projects\000" PUSHD "R:\Projects\000\" FOR /F "tokens=*" %%G in ('dir /a:d-s-h /b') do ( dir /s/b > R:\P

我编写了一个.bat文件,它在根文件夹的每个子文件夹中创建一个文本文件,显示子文件夹的内容。我现在遇到的问题是创建第二个.bat,它将从子文件夹位置删除所述文本文件。我用来创建.txt文件的.bat位于下面。非常感谢您的帮助

@echo off
IF EXIST "R:\Projects\000" PUSHD "R:\Projects\000\" 
FOR /F "tokens=*" %%G in ('dir /a:d-s-h /b') do ( 
     dir /s/b > R:\Projects\000\%%G\Folder_Contents.txt
)
POPD 

如果我真的了解你。看起来是这样的:

@ECHO OFF

IF EXIST "C:\Temp\" PUSHD "C:\Temp\"
ECHO @ECHO OFF > loc.bat 

FOR /F "tokens=*" %%G in ('dir /a:d-s-h /b') DO ( 
  DIR /s/b > C:\Temp\%%G\Folder_Contents.txt 
  ECHO DEL C:\Temp\%%G\Folder_Contents.txt >> loc.bat
) 
POPD

它与您当前的脚本几乎相同

delAllFolderContent.bat

@ECHO OFF

IF EXIST "R:\Projects\000" (
  PUSHD "R:\Projects\000"
  FOR /F "tokens=*" %%G in ('dir /a:d-s-h /b') DO ( 
      DEL "R:\Projects\000\%%G\Folder_Contents.txt"
  )
  POPD
) 

我将/F的
代码移动到
IF EXIST
块中,因此它将仅在目录存在时执行,而不是始终执行。

您问题中的格式似乎没有完全正确,您能看一下吗?我认为“>”是您想要显示的内容的一部分。您错过了目录名中的“\%%G”部分。为什么需要它?如果所有文件夹_contents.txt文件都是在000文件夹以下生成的,del中的/S将被递归删除。+1哇,你说得对!我不知道
DEL
真的会分割路径并在每个子目录中查找文件名。这似乎是这里最好/最简单的解决方案+1,我认为您有一个解决方案,但我不确定OP是否希望动态创建第二个批处理文件
@ECHO OFF

IF EXIST "R:\Projects\000" (
  PUSHD "R:\Projects\000"
  FOR /F "tokens=*" %%G in ('dir /a:d-s-h /b') DO ( 
      DEL "R:\Projects\000\%%G\Folder_Contents.txt"
  )
  POPD
)