bat批處理中分割字串,批處理中 型別變數的字串擷取問題

2022-11-17 17:16:07 字數 3027 閱讀 8076

1樓:匿名使用者

很簡單呀,如下

@echo off

set /p p=請輸入一個合法的檔案路徑,注意,是合法的:

for /f "delims=" %%i in ("%p%") do (

set filep=%%~dpi

set filen=%%~nxi

)echo 資料夾為%filep%,檔名為%filen%pause

2樓:匿名使用者

@echo off

echo 分離出傳遞引數的路徑名和檔名

call :split "e:\bat\4\4-12\dd.txt"

echo 傳遞完畢

pause

exit /b

:split

set "filepath=%~dp1"

set "filename=%~nx1"

call :seting "%filepath%" "%filename%"

goto :eof

:seting

echo 呼叫方式為下面兩種:

echo 第一種呼叫傳遞過來的路徑:%filepath%名稱:%filename%

echo 第二種呼叫傳遞過來的路徑:%~1名稱:%~2goto :eof

批處理中%%型別變數的字串擷取問題

3樓:來自飛英塔說話詼諧的春風

@echo off

setlocal enabledelayedexpansionset num=12345678

rem 假設需要擷取的字串為12345678for %%a in (%num%) do (set str=%%a

set var=!str:~4!

echo.!var!

) pause

set var=!str:~4! 這就是從第4位開始擷取該字串後的所有字元

4樓:永恆蔚藍

%a:~4%

for迴圈裡的變數吧?不能直接擷取,先用set賦值.另外處理for迴圈變數應該開變數延遲.

批處理 提取 字串中 指定分隔符之間的字元

5樓:

@echo off

setlocal enabledelayedexpansionfor /f "delims=" %%i in ('dir /b *.txt') do (

for /f "delims=" %%a in ('type "%%i"') do (

set "str=%%a?"

set "str=!str:「=!"

set "str=!str:」=!"

set "str=!str:&=?!"

set s=

for /l %%b in (0 1 100) do (if "!str:~%%b,1!" == "?" (echo,!s! & set s=

) else (

set "s=!s!!str:~%%b,1!"

))))>"new_%%i"

)pause

互助互利,請及時點選【採納回答】

批處理 迴圈拆分字串

6樓:匿名使用者

@echo off

set "var=123;245;455;564;545"

:loop

for /f "tokens=1* delims=;" %%a in ("var") do (

echo %%a

set "reminder=%%b"

)if defined reminder goto :loop

bat批處理按字元數量分割文字,例如按照100個字的數量分割儲存.並請說下原理,解釋下**.謝謝了.重分酬謝.

7樓:匿名使用者

@echo off

setlocal enabledelayedexpansionfor /f "tokens=*" %%i in (a.txt) do (

set s=!s!%%i

if "!s:~100,1!" neq "" (set/a n+=1

echo !s:~,100!>>file!n!.txtset s=!s:~100!))

怎麼使用bat批處理命令獲得一個檔案中的多個字串

8樓:匿名使用者

@echo off

setlocal enabledelayedexpansionfor /f "tokens=1,2" %%i in (a.txt) do (

set ip=%%i

set name=%%j

echo ip=!ip!      name=!name!)pause

如何用bat批處理實現特殊字串的替換

9樓:匿名使用者

如果沒有附加的已知條件,(比如只會有一處**而再無*  或無連續* 或肯定*前總是有一定種類或固定字元的字首等)只能用if逐個字元判斷是否為*  **例子(n0表示替換一處增加字元數):

set "xx=aa**bb"

set "a=111"

set "yy=%xx%"

rem 替換一處後會增加字元數以n0計

set/a n0=2,n1=0,n2=1

:rif "!yy:

~%n1%,1!"=="*" set yy=!yy:

~,%n1%!%a%!yy:

~%n2%!&set/a n1+=n0,n2+=n0

set/a n1+=1,n2+=1

if not "!yy:~%n1%!"=="" goto :recho !yy!

pause

如何用批處理bat將多個txt檔案中的指定字串刪除? 100

bat 批處理 文字修改,如何利用BAT批處理修改檔名及檔案中內容??

rem 複製後請把每行後面的空格去掉 set p str tmp.txt tmp.vbs echo wscript.echo replace createobject scripting.filesystemobject opentextfile tmp.txt readall,vbcrlf for...

求bat批處理檔案,求一個bat批處理檔案

以下 複製貼上到記事本,另存為xx.bat,編碼選ansi,跟要處理的多個資料夾放一起雙擊執行 cls echo off rem 將多個資料夾裡的一個指定名稱的子資料夾裡的最後一張jpg提取 拷貝 複製到同一個指定新資料夾 title z cd d dp0 powershell noprofile ...

批處理字元刪除

1.去掉小數點.在b1 輸入 a1 100,下拉,填充2.去掉逗號 選中b列 格式 單元格 數字 數值 去掉 使用千位分隔符 前面的 呵呵呵,右邊有東西嗎 我這樣理解不知道對了沒,去掉所有的 和,是不是啊 如下了 for f delims a in a.txt do set nr a set nr ...