Windows Command Prompt 中编写的批处理脚本

在 Windows Command Prompt 中编写的批处理脚本。del /s 1.docxs Command Prompt 中编写的批处理脚本。del /s 1.docx

这个批处理脚本的功能是删除名为 "1.docx" 的文件,使用了 "/s" 标志来删除所有子目录中的文件。

如果我有多个文件要删除,比如我有"1.mlx"、"2.mlx"、"3.mlx"、"4.mlx"、"1.docx"这多个文件想删除,脚本如何修改

@echo off
del /s 1.mlx
del /s 2.mlx
del /s 3.mlx
del /s 4.mlx
del /s 1.docx

在此示例中,使用了 @echo off 命令,以在执行脚本时禁用命令提示符的回显,使输出更加简洁和清晰。然后,分别使用 del /s 命令删除每个文件。

@echo off

set fn=sanciyangtiao.mlx

for /f "tokens=*" %%i in ('dir/s/b/ad') do copy %fn% "%%i"

pause

第一行 @echo off 用于关闭提示符中输出执行命令的回显。

第二行 set fn=sanciyangtiao.mlx 将变量 fn 设置为值 "sanciyangtiao.mlx"。

第三行 for /f "tokens=*" %%i in ('dir/s/b/ad') do copy %fn% "%%i" 使用 for 循环遍历每个由 dir /s /b 列出的子目录(/ad)。然后它将指定在 fn 中的文件复制到这些目录中的每个目录中。

最后,pause 停止脚本的执行,直到按下任意键。

它似乎旨在将特定文件(sanciyangtiao.mlx)复制到当前目录中的每个子目录以及其中的任何子目录。

我如果想复制多个文件到当前目录中的每个子目录以及其中的任何子目录,比如我有"1.mlx"、"2.mlx"、"3.mlx"、"4.mlx"、"1.docx"这多个文件想复制,该怎么修改这个脚本

@echo off

set fns="1.mlx" "2.mlx" "3.mlx" "4.mlx" "1.docx"

for /f "tokens=*" %%i in ('dir/s/b/ad') do (
  for %%j in (%fns%) do (
    copy %%j "%%i"
  )
)

pause

这个脚本会将文件列表 "1.mlx", "2.mlx", "3.mlx", "4.mlx", 和 "1.docx" 存储在变量 fns 中。然后,它使用两个嵌套的循环来遍历每个子目录,并将每个文件复制到每个子目录。

第一个循环遍历每个子目录,而第二个循环则遍历文件列表。在第二个循环中,变量 %%j 被设置为每个文件名,并使用在第一个循环中发现的子目录进行复制。

猜你喜欢

转载自blog.csdn.net/qq_53011270/article/details/131342115