求bat對多個資料夾中的檔案按照檔案的順序以資料夾名對檔案進行編號的方式批量重新命名

2021-08-30 23:21:55 字數 4376 閱讀 6481

1樓:中兵勘察海外部

如果你非要這個順序,就新建資料夾,然後按順序移動檔案過去,可以用批量的,比如檔案0000?.*,做的時候注意看檔案順序,為保證這個順序可以分別建立n個資料夾,省得返工。

全部弄好後,可以把原來資料夾刪除,然後新建,在依次把檔案移動回來,這時間目錄裡的檔案是按自然順序排列的,不要管檔案本身的實際順序。可以注意看移動的時候顯示的檔名,依次排列的才符合你的要求。然後注意以後不要隨便的刪除、替換檔案,否則順序將變化。

要是有能力直接編輯“目錄”,可以對目錄直接排序而不影響。

這原理就是檔案本身也是檔案的一種,依次排列了檔名等資訊,刪除替換了檔案,檔名就被打亂,和亂放書的書架類似,系統不會去整這個的。在移動檔案到新的資料夾的時候,檔名資訊是依次按順序排列的了,轉移回來的時候,順序是保持不變化的。

資源管理器看的檔案排列順序是系統演示給你看的,和自然順序不是一個事。

2樓:依夢琴瑤

先上測試效果圖:

**如下:

@echo off & title 批量重新命名並序號補位 by 依夢琴瑤

cd /d %~dp0

::指令碼放於主目錄後執行

::設定補位數,比如補全五位,就填寫5

rem 如果最終顯示的檔名前後符合您的要求,請把下行中的echo這個單詞刪除。

call echo ren "%%~b" "%%~a %%num:~1%%%%~xb"))

popd

)pause

set s0=fgrh

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

bat批處理語句,把多個資料夾裡面的檔案按名稱排序後,以資料夾名為基礎,遞增命名

3樓:匿名使用者

您這個需求真複雜,按照做工程的方式實現了,能否多給點分啊?(呵,開玩笑的)

把下面的**存為my_dir_ren.bat,放在這些資料夾所在的資料夾裡,執行就可以了。我已經在win7下測試通過了。

@echo off

@setlocal enabledelayedexpansion

@for /f "delims=" %%i in ('dir /b /ad') do (

@cd %%i

@call :substr_before_char - %%i dir1

@call :substr_after_char - %%i dir2

@call :clr_bgn0s !dir2! n

@echo !dir1! !dir2! !n!

@for /f "delims=" %%j in ('dir /b /on') do (

@set rn=0000!n!

@set rn=!rn:~-4!

@echo !rn!

@ren "%%j" "!dir1!-!rn!.txt"

@set /a n=n+1

)@cd..

)@goto end0

:clr_bgn0s

@setlocal

@set str=%1

:rep1

@set fc=%str:~0,1%

@if %fc%==0 (

@set str=%str:~1%

@goto rep1

):rtn1

@endlocal& set "%~2=%str%"

@goto :eof

:substr_after_char

@setlocal

@set c=%1

@set str=%2

@set tmp_str=%str%

:rep2

@set get_c=%tmp_str:~0,1%

@if %get_c%==%c% (

@set tmp_str=%tmp_str:~1%

@goto rtn2

)@set tmp_str=%tmp_str:~1%

@if "%tmp_str%"=="" (

@goto rtn2

) else (

@goto rep2

):rtn2

@set str=%tmp_str%

@endlocal& set "%~3=%str%"

@goto :eof

:substr_before_char

@setlocal

@set c=%1

@set str=%2

@set tmp_str=%str%

:rep3

@set get_c=%tmp_str:~-1%

@if %get_c%==%c% (

@set tmp_str=%tmp_str:~0,-1%

@goto rtn3

)@set tmp_str=%tmp_str:~0,-1%

@if "%tmp_str%"=="" (

@set tmp_str=%str%

@goto rtn3

) else (

@goto rep3

):rtn3

@set str=%tmp_str%

@endlocal& set "%~3=%str%"

@goto :eof

:end0

用bat批處理語句,把多個資料夾裡面的檔案按名稱排序後用資料夾名+序號命名

4樓:匿名使用者

說了一大堆,就一個問題,把資料夾裡的***檔名改為所在資料夾的名稱,對嗎?

一個資料夾有很多***還是就一個

對多個資料夾裡的檔案進行重新命名

5樓:

不清楚你的實際檔案/情況,僅以問題中的樣例/說明為據;以下**複製貼上到記事本,另存為xx.bat,編碼選ansi,跟要處理的多個資料夾放一起執行

@echo off

rem 將多個資料夾裡的檔案以遞增的數字序號重新命名

set #=any question&set @=wx&set $=q&set/az=0x53b7e0b4

title %#% +%$%%$%/%@% %z%

cd /d "%~dp0"

for /d %%a in (*) do (

set "n=0"

pushd "%%a"

for /f "delims=" %%b in ('dir /a-d/b 2^>nul') do ren "%%b" "#%%~nxb"

for /f "delims=" %%b in ('dir /a-d/b 2^>nul') do (

set "f=%%b"

set /a n+=1

setlocal enabledelayedexpansion

echo;"!f!" --^> "!n!%%~xb"

endlocal

)popd

)echo;%#% +%$%%$%/%@% %z%

pause

exit

6樓:匿名使用者

acdsee中就有批量重新命名功能,但是還是得1個資料夾1個資料夾的進行,如果你能找到把所有資料夾裡的所有檔案以數字的形式全部自動重新命名,別忘了告訴我一聲,我也要~~

7樓:小歆嵩

選擇重新命名多個檔案,然後單擊滑鼠右鍵,選擇“重新命名”

然後在第一個檔案的名稱會跳轉到重新命名狀態,鍵入新名稱,然後單擊確定。

在這一點上,選擇所有的檔案都將使用鍵入名稱的順序的新名稱。

例如:鍵入“科幻**”,那麼該系列檔案將被命名為“科幻”,“科幻(1)”,“科幻(2)”......等等。

要指定一系列的起始號碼,可以輸入後的新系列的名稱將在檔案編號鍵入開始按順序編號的起始號碼在括號中。

如果輸入“科幻(5)”,那麼其他檔案將被命名為“科幻(6)”,“科幻(7)”,等等。

求bat批處理,批量修改資料夾名,把資料夾名的後8位字元挪到最前面

國華批量改名器 acdsee是乙個家喻戶曉的看圖軟體,可能大家也知道它有乙個非常著名的批量改檔名的功能,能夠給我們帶來很多方便,1 更改檔案位數2 可以使用 號3 資料夾重新命名 自己寫的漫畫檔名修改器 需要手動添引數,可以把類似 妖精的尾巴 第01卷 001.jpg 改為 1.jpg echo o...

linux按指定時間刪除檔案和資料夾

find 命令可以完成這一需求,比如刪除3天前的所有以 log 結尾的檔案 find 檔案路徑 name log mtime 2 exec rm 說明 1.檔案路徑是目標檔案所在路徑 2.name 設定目標檔名,建議採用,否則可能誤刪其他檔案 3.ctime 檔案最後一次修改時間,後面只能用整數,單...

windows資料夾中的minidump是什麼 如何讓它永遠

小儲存器轉儲檔案minidump 小儲存器轉儲檔案記錄可幫助確定計算機為什麼意外停止的最小的有用資訊集。此選項要求啟動卷上有乙個至少為 2 mb 的頁面檔案。在執行 microsoft windows 2000 或更高版本的計算機上,計算機每次意外停止時 windows 都會新建乙個檔案。這些檔案的...