需要這個腳本的一些幫助
for /d %%D in ("*") do (
for %%F in ("%%D\*.jpg") do (
ren "%%~dpF(*).txt" "(*) %%~nF.*"
)
)
這是原始腳本,這就是它的作用
Before
filename.jpg
(1).txt
Result
filename.jpg
(1) filename.txt
它從 jpg 復制檔案名并將其添加到 txt 檔案的檔案名中
我一直在嘗試做的是兩件事
我想添加一個受控的子檔案夾閱讀器,我想在 txt 檔案的某些點之間復制檔案名
Before
filename.jpg
(1)(name).txt
Result
filename.jpg
(1) filename (name).txt
我已經嘗試了 10 種不同的方法來完成這項作業,但由于某種原因我不能
試過這個
FOR /f "delims=" %%q IN ('dir /b /s /a-d "Ready\(*)(Name).txt"') DO call :label "%%q"
goto :eof
:Label
set "FILE=%~1"
for /d %%D in ("*") do (
for %%F in ("%%D\*.jpg") do (
ren "%%~dpF(*)(Name).txt" "(*) %%~nF (*).*"
)
)
我也洗掉了這個for /d %%D in ("*") do (
并嘗試了這個
FOR /f "delims=" %%q IN ('dir /b /s /a-d "Ready\(*)(Name).txt"') DO call :label "%%q"
goto :eof
:Label
set "FILE=%~1"
for %%F in ("*.jpg") do (
ren "%%~dpF%~1" "(*) %%~nF (*).*"
)
并嘗試了這個
for /d %%D in ('dir /b /s /a-d "*"') do (
for %%F in ("%%D\*.jpg") do (
ren "%%~dpF(*)(Name).txt" "(*) %%~nF (*).*"
)
)
任何幫助都會很棒
謝謝
uj5u.com熱心網友回復:
@ECHO OFF
SETLOCAL
rem The following setting for the source directory is a name 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"
PUSHD "%sourcedir%"
for /d %%B in ("*") do (
for %%E in ("%%B\*.jpg") do (
FOR /f "tokens=1,2delims=()" %%q IN ('dir /b /a-d "%%~dpnxB\(*)(*).txt" 2^>nul') DO (
rem files matching "(*)(*).txt only
REN "%%~dpnxB\(%%q)(%%r).txt" "(%%q) %%~nE (%%r).txt"
)
FOR /f "tokens=1*delims=()" %%q IN ('dir /b /a-d "%%~dpnxB\(*).txt" 2^>nul') DO IF /i "%%r" equ ".txt" (
rem files matching "(*).txt only
REN "%%~dpnxB\(%%q).txt" "(%%q) %%~nE.txt"
)
)
)
popd
GOTO :EOF
注意:該批次已布防。它將重命名檔案。在應用于真實資料之前,請始終根據測驗目錄進行驗證。
外部回圈%%B獲取目錄名稱。那里并不奇怪。
下一個回圈%%E獲取.jpg名稱。那里并不奇怪。
第一個回圈%%q查看.txt適合該模式的檔案(*)(*).txt并根據重命名的需要重新組裝這些部分。
第二個回圈%%q查看.txt符合模式的檔案,(*).txt其中可能包括與(*)(*).txtnow匹配的剛剛重命名的檔案(*) jpgfilename (*).txt,所以這一次,%%r必須.txt排除這些新重命名的檔案。
我會重復
警告:這批已武裝。它將重命名檔案。在應用于真實資料之前,請始終根據測驗目錄進行驗證。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/492139.html
標籤:批处理文件
