我正在處理這個腳本,我試圖讓它讀取某個檔案夾
@echo off
Setlocal enabledelayedexpansion
Set "Pattern="
Set "Replace="
@For %%G In ('dir /b /a-d "Quills"') Do (
FOR /f "delims=" %%a IN ('dir /b /s /a-d "*.txt"') DO (
Set "File=%%~na"
Ren "%%a" "!File:%Pattern%=%Replace%!%%~xa"
)
)
我嘗試了多種設定,但似乎沒有任何效果
我添加了這個 @For %%G In ('dir /b /a-d "Quills"') Do (
我添加了這個Set "Source="
我添加了這個@For %%G In (Quills) Do (
我添加了這個FOR /f "delims=" %%a IN ('dir /b /s /a-d "Quill\*.txt"') DO (
Quills 是我想讓它讀取的檔案夾名稱,我有很多子檔案夾,Quill 可以在很多地方找到任何幫助都會很棒
我有許多不同名稱的檔案夾,并且我有不同的檔案夾來編輯檔案
example:
main folder
--- Folder 1
------Quills
------Folder 1
------Folder 2
main folder 2
--- Folder 1
------Quills
------Folder 1
------Folder 2
Quill位于許多不同的子檔案夾中,在每個檔案夾中我都有很多txt檔案,我所做的是使用腳本編輯檔案名,從檔案名中洗掉某些字符,例如upper_case.txt,這里我將使用在Search找到所有_和Replace它有space,像這樣的upper case.txt,但我只希望腳本執行此操作的檔案的檔案夾羽毛筆發現里面
好的,伙計們,感謝Gerhard我能夠找到原始腳本的問題
我會把我固定的原始腳本留在這里給任何可能需要它的人
@echo off
Setlocal enabledelayedexpansion
Set "Pattern=What to search for"
Set "Replace=What to replace it with"
FOR /R %%a IN ("Folder Name\*.txt") DO (
Set "File=%%~na"
Ren "%%a" "!File:%Pattern%=%Replace%!%%~xa"
)
謝謝
uj5u.com熱心網友回復:
我的假設是這Quills是一個單一的目錄,你想遞回搜索它的根檔案夾和子檔案夾中的檔案:
@echo off
setlocal enabledelayedexpansion
set "search=str_to_search"
set "replace=to_replace"
for /R %%i in ("Quills\*.txt") do (
set "fname=%%~nxi"
if "!fname:%search%=%search%!" == "!fname!" ren "%%~fi" "!fname:%search%=%replace%!"
)
但是,如果您Quills在不同的子檔案夾中有多個目錄并希望為每個目錄執行此操作:
@echo off
setlocal enabledelayedexpansion
set "search=search_str"
set "replace=replace_str"
for /F "delims=" %%i in ('dir /b/s/a-d *.txt ^| findstr /i "Quills\\"') do (
set "fname=%%~nxi"
if "!fname:%search%=%search%!" == "!fname!" ren "%%~fi" "!fname:%search%=%replace%!"
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/396103.html
標籤:批处理文件
