拷贝某路径下一种类型文件到另外一个路径

代码

@echo off
set source_path=D:\Files\Notes
set dest_path=C:\Users\
set pfile=*.md
d:
cd %source_path%
for /f "delims=" %%s in ('dir /b/a-d "%source_path%"\"%pfile%"') do (
echo %%s
copy /y "%%s" %dest_path%
)
pause

for /f

for /f 是 Windows 系统命令行中的一个用于迭代文本文件或字符串的关键字,通常会在处理文本或字符串时使用。它的语法格式为:

Copy code
for /f "options" %%variable in (filename) do command

其中,options 表示使用不同的选项来设置循环行为。filename 可以是一个文本文件的路径,也可以是一段命令、一段字符串或一段通过管道符 | 传递的输出值。

在循环中,%%variable 表示循环变量名,可以是任意的自定义变量名。command 表示要对每个迭代项执行的命令。

因此 for /f 常用于在文本文件中查找关键字、处理字符串、批量修改文件名等操作。

echo

echo 是 Windows 系统命令行中的一个命令,用于在控制台屏幕上输出文本信息。echo 命令的语法格式为:

Copy code
echo [参数] [要输出的文本或变量]

其中,参数 可以是若干个可选参数,如 /e 表示启用转义字符,/n 表示输出一个换行符,/s 表示不显示命令行中给出的命令。要输出的文本或变量 表示要在控制台显示的文本或变量名。

例如,echo "Hello World" 将会在控制台输出文本 Hello Worldecho %PATH% 将会输出系统环境变量 PATH 的值。

在批处理脚本中,通常使用 echo 命令来输出调试信息或生成脚本文件。

dir /b/a-d/s

dir /b/a-d/s 是 Windows 命令行中 dir 命令的参数组合,用于列出指定目录下的所有非目录文件。

具体来说,参数含义如下:

  • /b 表示使用“简洁输出”格式,只显示文件名而不显示其他信息。
  • /a-d 表示只显示文件,不显示目录。
  • /s 表示递归子目录中的文件。

将这几个参数组合起来,可以在指定目录及其所有子目录下列出所有非目录文件的文件名,并输出到命令行窗口。

在批处理脚本中,通常可以将该命令与 for 命令组合使用来实现对文件的批量操作,例如批量复制、删除等。

copy /y

copy /y 是 Windows 系统命令行中 copy 命令的参数,用于复制文件时指定覆盖已有文件而不提示确认操作。

具体来说,/y 标志告诉 copy 命令在复制过程中自动覆盖已有文件,而不会弹出确认提示框。如果没有指定 /y 标志,则命令行窗口会提示用户确认是否要覆盖目标文件。

在批处理脚本中,copy /y 命令通常用于在进行文件复制操作时覆盖掉已有的同名文件,避免被询问是否确认复制。但请注意,使用该命令时需要谨慎操作,否则可能会不小心覆盖掉重要文件。

删除某目录下所有某类型文件

del /s /path/*.x

/s代表递归删除/path目录及其子目录下所有类型为x的文件,若希望每删除一个文件前询问,可在追加/p 命令

del /sdel /p 是 Windows 操作系统中用于删除文件的命令。下面是它们的详细解释:

del /s 删除指定文件或文件夹

  • /s 参数表示递归删除指定目录及其子目录中的所有文件和文件夹。
  • 指定文件或文件夹时,需要使用绝对路径或相对路径。
  • 如果文件或文件夹不存在,则命令将不会执行。

例如,要删除名为 "folder1" 的目录及其子目录中的所有文件和文件夹,可以使用以下命令:

Copy code
del /s folder1      

这将递归地删除 "folder1" 目录及其子目录中的所有文件和文件夹。

  1. del /p 删除指定文件或文件夹,并保存删除确认对话框
  • /p 参数表示在删除文件或文件夹之前,显示删除确认对话框,以便用户确认是否删除。
  • 如果不使用此参数,则命令将直接删除文件或文件夹。
  • 指定文件或文件夹时,需要使用绝对路径或相对路径。

例如,要删除名为 "folder1" 的目录及其子目录中的所有文件和文件夹,并保存删除确认对话框,可以使用以下命令:

Copy code
del /p folder1      

这将显示删除确认对话框,以便用户确认是否删除 "folder1" 目录及其子目录中的所有文件和文件夹。

总之,del /sdel /p 都是用于删除文件或文件夹的命令,但它们的效果不同。del /s 将递归地删除指定目录及其子目录中的所有文件和文件夹,而 del /p 将在删除文件或文件夹之前,显示删除确认对话框,以便用户确认是否删除。

del命令

del 命令是 Windows 命令行中用于删除文件或文件夹的命令。以下是一些常用的 del 命令解释:

  1. 删除文件或文件夹:

    del [文件或文件夹路径]  

    其中,文件或文件夹路径 是要删除的文件或文件夹的路径。如果省略路径,则默认为当前目录。

    例如,要删除名为 example.txt 的文件,可以运行以下命令:

    del example.txt  
  2. 删除指定目录下的所有文件和子目录:

    del [目录路径]/*  

    其中,目录路径 是要删除的目录的路径。*/ 表示删除该目录下的所有文件和子目录。

    例如,要删除名为 mydir 的目录及其子目录和文件,可以运行以下命令:

    del mydir/*  
  3. 删除指定目录下的所有文件和子目录,不包括指定文件:

    del [目录路径]/?  

    其中,目录路径 是要删除的目录的路径。/? 表示不删除指定文件所在的目录。

    例如,要删除名为 mydir 的目录下的所有文件和子目录,但不包括 example.txt 文件,可以运行以下命令:

    del mydir/?  
  4. 删除当前目录下的所有文件和子目录:

    del *.*  

    其中,*.* 表示删除当前目录下的所有文件和子目录。

    例如,要删除当前目录下的所有文件和子目录,可以运行以下命令:

    del *.*  

请注意,删除操作将永久删除指定的文件或文件夹,因此在使用 del 命令之前,请务必仔细检查要删除的内容。