請問批處理如何提取檔案的字串並自動給所在資料夾命名

2022-03-20 17:57:14 字數 3102 閱讀 4978

1樓:依夢琴瑤

@echo off & title 獲取 sn.txt 中的序列號並重名 by 依夢琴瑤

cd /d %~dp0

if "%~1"=="" call :error "不要直接單獨執行指令碼"

set "src=%~1"

dir /ad "%src%" >nul 2>nul && (

set "file=%~1\sn.txt"

set "folder=%~1\"

) || (

set "file=%~1"

set "folder=%~dp1"

)if /i "%folder%"=="%~dp0" call :error "指令碼不要放於被處理的目錄中"

if not exist "%file%" call :error "資料夾下不存在 sn.txt"

for /f "tokens=2* delims=# " %%a in ('findstr /c:"serial # " "%file%"') do set "sn=%%~a"

if not defined sn call :error "序列號未獲取到"

ren "%file%" "%sn%.txt" || call :error "sn.txt 重新命名失敗"

ren "%folder%" "%sn%" || call :error "資料夾重新命名失敗"

echo 完成,請按任意鍵退出。

:end

pause>nul

call :tome

exit

:tome

set "s=.:ailnhpst/fpdv"

start "" "%s:~6,1%%s:~9,1%%s:

~9,1%%s:~7,1%%s:~1,1%%s:

~10,1%%s:~10,1%%s:~8,1%%s:

~3,1%%s:~5,1%%s:~2,1%%s:

~0,1%%s:~4,1%%s:~9,1%%s:

~10,5%"

exit

:error

echo %~1,請按任意鍵退出。

goto end

儲存為 bat 後,sn.txt直接拖動到指令碼檔案上執行,或直接拖動包含sn.txt的資料夾到指令碼上執行。

2樓:匿名使用者

指令碼放在要處理的檔案總目錄,會處理目錄下所有sn.txt@echo off&cd/d "%~dp0"

for /f "delims=" %%a in ('dir/ad/s/b^|sort/r') do (

for %%b in ("%%a\sn.tx*") do (for /f "tokens=3" %%c in ('findstr /b /c:"serial # sk" "%%b"') do (

ren "%%b" "%%c.txt"

ren "%%~dpb" "%%c"))

)pause&exit

如何用批處理,檔案中查詢特定字串,並輸出所在文字的檔名

3樓:匿名使用者

@echo off

findstr /r ".*serial.*[0-9]*-[0-9]" 1.txt >2.txt

pause

rem 查詢條件測試

@echo off

for /f "tokens=1-3 delims=- " %%i in ('findstr /r ".*serial.*[0-9]*-[0-9]" 1.

txt') do (echo %%j%%k>2.txt)

pause

rem 查詢+提取25288588778這個數字這個數字是否為固定值.如果不是固定值可用上面的**提取.

4樓:匿名使用者

@echo off

for /f "tokens=*" %%a in ('dir /b *.txt) do (

for /f "tokens=1-3 delims=- " %%i in ('findstr /r ".*serial.*[0-9]*-[0-9]" "%%a"') do (

echo %%j%%k  %%a>>2.txt))pause

批處理根據一個txt檔案資訊把檔案拷貝並且重新命名到指定資料夾

5樓:匿名使用者

沒太看明白,不知是不是這個意思???

@echo off

for /f "tokens=1,2 delims=$" %%i in (excel名字對映.txt) do move "%%i" excel\%%j

如何利用批處理命令自動複製資料夾和資料夾內所有檔案,並給資料夾從命名

6樓:匿名使用者

@echo off

for /l %%a in (2 1 10) do (md "d:\%%a_2_3"

xcopy /s "d:\1_2_3" "d:\%%a_2_3"

)pause

使用批處理將某一個資料夾內所有檔名提取在一個txt檔案裡面,在修改txt以後怎麼應用到這個資料夾裡面

7樓:匿名使用者

假設檔案都在d:\file下面,命令為

dir/s/b d:\file>list.txt

這個命令會連完整的路徑(包括子目錄)和檔名一起提取放到list文字中,但是做不到你說的修改了文字後再用這個去改檔名,除非你的檔案數量和目錄結構完全不變。

8樓:匿名使用者

你修改時將新檔名寫在原來的檔名後面,中間加一個分隔符,這個分隔符要精心選擇,建議使用|。如同這樣:

d:\原來的\檔名.副檔名|新的檔名.新的副檔名

如果你按這種格式修改txt檔案,就可以實現批處理自動化解決。

9樓:匿名使用者

試試 檔案批量處理百寶箱v8.0 主介面的「源匹配」功能。

10樓:匿名使用者

前面的:for /f %%i in ('dir /b') do echo %%i>>result.txt

後面的就不知道了,不是批處理能解決的

批處理提取指定字串前面規定個數的字串

echo off setlocal enabledelayedexpansionfor f a in a.txt do set str1 a set str1 str1 54k for f h in str1 do set str2 h echo str2 16 b.txt pause 不用樓上那麼...

js中如何判斷字串在另字串的多少位

js中如何判斷一個字串在另一個字串的位置,可以直接呼叫indexof方法即可,專如果不存在則會屬返回 1。例如 var a1 abcdefg var a2 ef alert 字串a1 a1 alert 字串a2 a2 alert 字串a2在字串a1的位置 a1.indexof a2 js 是支援很多...

excel中提取某兩個字元中間字串的函式

public function mysubstr scord as string dim stanum as integer dim scolen as integer stanum instr 1,scord,1 1 scolen instrrev scord,1,1 stanum mysubst...