在 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
被设置为每个文件名,并使用在第一个循环中发现的子目录进行复制。