❶ 求批處理 獲取當前目錄下所有子目錄路徑,就是所有文件夾路徑
@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/?