我有以下有效的代碼,但我仍然需要更多功能。
@echo off
setlocal EnableDelayedExpansion
< albumsids.txt (
for /F "delims=" %%a in ('dir /B *.*') do (
set /P newalbumsids=
ren "%%~Fa" "!newalbumsids!%%~Xa"
)
)
我有幾個檔案夾,例如:
Folder
Folder name 1
Folder name 2
Folder name 3
Folder name 4
Folder name 5
Folder name 6
和一個 .txt 檔案,其名稱是我希望重命名我的檔案夾: .txt 檔案我手動填寫新名稱
albumsids.txt
6544233_Folder
1234233_Folder_name_1
6575670_Folder_name_2
4756722_Folder_name_3
3375673_Folder_name_4
6575675_Folder_name_5
8575677_Folder_name_6
the list continue..
我的問題是 .txt 中的名稱并非一直都是有序的,而且我有數百個檔案夾。大多數時候是混合的:
albumsids.txt
1234233_Folder_name_5
6575670_Folder_name_3
6544233_Folder
475672_Folder_name_6
3375673_Folder_name_2
6575675_Folder_name_1
8575677_Folder_name_3
the list continue..
我需要它來加載整個文本檔案,在 .txt 中搜索初始檔案夾檔案夾名稱的部分名稱,然后復制整個標題以重命名匹配的檔案夾。
基本上,我手動插入的新名稱包含一個“唯一 ID”和“_”,該結構始終用作分隔符:
Uniqueid_FOLDER_NAME
Uniqueid_FOLDER
檔案夾可以是 1 個單詞或更多,所以
Folder will become 1234233_Folder
Folder Name 5 will become 1234233_Folder_name_5
Folder Name 1 will become 1234233_Folder_name_1
Folder Name 3 will become 1234233_Folder_name_3
and so on...
感謝你們對我的幫助
uj5u.com熱心網友回復:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
rem The following settings for the source directory and filename are names
rem that I use for testing and deliberately include names which include spaces to make sure
rem that the process works using such names. These will need to be changed to suit your situation.
SET "sourcedir=u:\your files"
SET "filename1=%sourcedir%\q73613649.txt"
FOR /f "usebackqtokens=1*delims=_" %%b IN ("%filename1%") DO (
SET "#=%%c"
SET "#=!#:_= !"
ECHO REN "%sourcedir%\!#!" "%%b_%%c"
)
GOTO :EOF
在應用于真實資料之前,請始終根據測驗目錄進行驗證。
所需的 REN 命令僅ECHO
用于測驗目的。驗證命令正確后,更改ECHO REN
為REN
實際重命名檔案。
簡單地說,使用分隔符將新名稱分成兩部分_
,將第二部分的下劃線替換為空格,然后重命名目錄。如果該目錄可能不存在,請忍受錯誤訊息或通過附加 2>nul
到該ren
行來轉儲它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/507900.html
上一篇:選擇選項轉到相應的功能