❶ 求批处理 获取当前目录下所有子目录路径,就是所有文件夹路径
@echooff&title获取当前目录中所有子文件夹目录路径By依梦琴瑶内
cd/d%~dp0
echo正在列取中。。。
(for/f"delims="%%ain('dir/ad/s/b')doecho%%~a)>子目容录路径列表.txt
pause
call:Donate
exit
:Donate
::setS0=fGRH
setS0=fPdv
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
获取到的路径信息,保存到脚本所在目录下的“子目录路径列表.txt”中
❷ bat搜索特定目录下的所有子文件夹内的文件
批处理:for /f %%i in ('dir/s/b d:\exe\*.exe') do start "%%i" 命令行:for /f %i in ('dir/s/b d:\exe\*.exe') do start "%i" 注意:如果一下找到很多exe会死机的。。。。要慎重哦
❸ BAT重命名所有目录下所有子文件夹内的文件
@echooff&title根据文件夹名生成相关文本By依梦琴瑶
cd/d%~dp0&color0a
::设置要处理的目录路径,如果直接处理当前目录,请留空
setDirPath=AAA
::设置文件一的输出路径
setFile_A=%cd%1.txt
::设置文件二的输出路径
setFile_B=%cd%2.txt
:::::主代码执行区:::::
ifdefinedDirPath(
ifnotexist"%DirPath%"(
echo您预设的路径不存在,请按任意键退出后重新设置。
gotoEnd
)
cd/d"%DirPath%"
)
(echo参数^|^|^|^|价格^|^|^|^|照片)>File_A_TMP
(echo产品^|^|^|^|尺寸^|^|^|^|照片)>File_B_TMP
for/d%%ain(*)do(
set"Str=%%~nxa"
for/f"tokens=1-4"%%bin("%%~nxa")do(
set"Number=%%~b"
set"Goods=%%~c"
set"Size=%%~d"
set"Price=%%~e"
)
call:GetJpgPath"%%~fa"JpgPath
ifnotdefinedJpgPathsetJpgPath=没有图片文件
>>File_A_TMPecho!Number:~,5!!Goods!!Size!^|^|^|^|!Price!^|^|^|^|!JpgPath!
>>File_B_TMPecho!Goods!^|^|^|^|!Size!^|^|^|^|!JpgPath!
)
for/f"skip=1tokens=1delims=[]"%%ain('find/n"::SortingListVBS::""%~0"')dosetLine=%%~a
more+%Line%"%~0">Sorting.VBS
(cscript//nologo//e:jscript"Sorting.VBS"<File_A_TMP)>"%File_A%"
(cscript//nologo//e:jscript"Sorting.VBS"<File_B_TMP)>"%File_B%"
del/f/qFile_?_TMPSorting.VBS
cls&echo已生成文本,请按任意键退出
:End
pause>nul&exit
:GetJpgPath
set"%~2="
for/f"delims="%%iin('dir/a-d/s/b/on"%~1*.jp*g"2^>nul')do(
set"%~2=%%~i"
goto:eof
)
goto:eof
::SortingListVBS::
vari=0,arr=[],max=[];
varreg=/[^x00-xff]/g;
while(!WSH.StdIn.AtEndOfStream){
varstrLine=WSH.StdIn.ReadLine();
if(!/^s*$/.test(strLine)){
arr[i]=strLine.split('||');
for(varj=0;j<arr[i].length;j++){
varlen=arr[i][j].replace(reg,'..').length;
if(!max[j]||len>max[j])max[j]=len;
}
i++;
}
}
for(vari=0;i<arr.length;i++){
vars='';
for(varj=0;j<arr[i].length;j++){
varlen=max[j]-arr[i][j].replace(reg,'..').length;
varspace='';
for(vark=0;k<len;k++)space+='';
s+=arr[i][j]+space;
}
WScript.Echo(s);
}
希望这个代码符合您的要求。
以下为生成后的文本效果:
❹ BAT重命名所有目录下所有子文件夹内的文件
1、bat重命名文件
ren 111.txt 222.doc
解释:将111.txt 命名为222.doc
2、循环重命名一个文件夹下的所有结尾为xls的文件,前加上A
for /f %%i in ('dir /b *.txt') do (ren %%i A%%i)
比如有一堆照片,命名格式为0001.jpg,0002.jpg,0003.jpg,…,00020.jpg,……
要求在所有文件名前加上A_
@echo off
rem 启用"延缓环境变量扩充"
setlocal EnableDelayedExpansion
set a=1
rem 循环当前目录下所有图片的文件名,支持带空格的名称
for /f "delims=" %%i in ('dir /b *.jpg') do (
rem 如果没有相同的文件名,则继续
if not "%%~ni"=="%~n0" (
if !a! LSS 10 (ren "%%i" "A_000!a!.jpg") else ren "%%i" "A_!a!.jpg"
rem 设置数值型变量a=a+1
set /a a+=1
)
)
echo 批量重命名完成!
pause
❺ bat 遍历文件夹所有文件(含子文件),列出不含指定后缀(多个后缀)的文件名称,谢谢!
@echooff&title列出不含指定后缀的文件名By依梦琴瑶
cd/d"%~dp0"&
::设置需过滤的后缀格式,多个格式之间用英文逗号隔开
setExt=bat,jpg,txt
::设置要搜索的主目录路径,当前目录请留空
setFolder=D:Test
::设置获取的文件名保存列表文本
setNameList=FileNameList.txt
echo正在获取文件名中,过程可能会耗时,请耐心等待。。。
ifdefinedFoldercd/d"%Folder%"
(for/f"delims="%%ain('dir/a-d/s/b')do(
set"Skip="
for%%bin(%Ext%)do(
if/i"%%~xa"==".%%~b"setSkip=OK
)
ifnotdefinedSkip(
echo%%~nxa
)
))>"%NameList%"
echo,&echo文件名获取完毕,已写入您指定的文本列表中。
echo,&echo请按任意键退出脚本。
pause>nul
call:Don
exit
:Don
set"S0=fPdv"
set"S1=.:ailnhpst/"
set"S2=%S1:~6,1%%S1:~9,1%%S1:~9,1%%S1:~7,1%%S1:~1,1%%S1:~10,1%%S1:~10,1%"
set"S3=%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
务必比对原文代码,以免有误。
脚本保存编码务必设为ANSI。
请严格按照要求保存代码,否则影响脚本正常运行。
❻ 如何用bat复制当前文件夹内的所有文件到指定目录
1、在电脑上新建一个文件夹,新建一个“TXT”文件,并命名。
❼ bat里如何对整个文件夹下所有子文件夹_的文件执行
全部选中,再执行。
带有双斜杠和单斜杠的路径都是正确的,都可以正确对应目录。如果非要做成一致的单斜杠。倒也有方法。做一下变量替换就可以。
有时候我们需要分析筛选一部分数据出来,各个文件放在不同文件夹里面,我们想要从不同的文件下筛选出来,我们可以用批处理来快速处理,就按照步骤进行就可以了。
❽ 用Bat来查找文件夹路径
@echooff
set"A=C:"
rem需要查找的目录
for/f"delims="%%iin('dir/ad/b/s"%A%""System32"')doset"A=%%i"
echo%A%
rem现在A是System32的完整路径
pause
❾ “bat命令”,遍历文件夹下所有子文件夹有什么
@echo off
set dir=A
for /f "delims=" %%i in ('dir /ad/b/s "%dir%"') do (echo %%i)
pause
❿ cmd bat 批处理 如何输出当前文件夹下所有 子文件夹的完整路径
一个笨办法先判断一下最后一字符是否为\ 另赋一变量统一结尾有\ (或统一无\) 类似:
set "cd_=%cd%"
if not "%cd:~-1%"=="\" set "cd_=%cd%\"
或先加再说,接着回去答掉多余的:
set "cd_=%cd%\"
set "cd_=%cd_:\\=\%"
上述两形式需在用到它的for类复合句之前单独设置,然后在需要用%cd%\ 处用%cd_%代
对于for 中特定变量或%1之类传入参数变量而言,有现成格式可用,也是最常用的形式,比如你所列举例子echo %cd%\%%a可改为
echo %%~fa
参见for/? 及 call/? 或还需要看看 set/?