1樓:依夢琴瑤
您需要設定變數,而不是直接在%~ni後面加上:~4設定好變數後,再進行變數呼叫和擷取。
set var=%~ni
echo !var:~4!
需要開啟環境變數。
延遲命令哦!
2樓:
以下**複製貼上到記事本,另存為,編碼選ansiecho off&mode con lines=3000rem 擷取檔名稱開頭和末尾的幾位字元。
title %#% +z%
set "folder=d:\kakaka"
if not exist "%folder%" echo;"%folder%" 未找到&pause&exit)
for /f "delims=" a in ('dir /a-d-h/b "%folder%\"do (
set "base=%%na"
echo;"%a"
setlocal enabledelayedexpansionecho;前四位 "!base:~,4!"
echo;後四位 "!base:~-4!"
endlocal
echo;%#% +z%
pauseexit
如何用批處理檔案保留檔名的前幾位?
3樓:剩下y快樂
把要修改名字的檔案全部選中,右鍵改名,輸入你需要的文字字元,回車即可,不過這樣改名,系統會自動把檔案編出序號,希望可以幫到你!
批處理取檔名前幾位
4樓:網友
全部選定,右鍵-重新命名-選中點前邊的部分,鍵入你要修改後的名字-點空白處即可。
求批處理 如何保留檔名後幾位,刪除之前的字母
5樓:我還是託
::請將要處理的檔案直接拖至此bat圖示上if "%1"=="" exit
pushd %~dp1
set m=%~n1
set n=%~x1
echo %m:~-3%%n%
move "%1" "%m:~-3%%n%"
6樓:網友
可用以下**,已驗證過的:
echo off
set /p b=你想保留檔名後面幾個字元:
setlocal enabledelayedexpansionfor %%i in (*exe) do (set $=%%~ni
rename %%i !$b%!%xi)exit
注意:上面**中的。exe可以被改成任何型別的副檔名,表示只處理這一類檔案,保留檔名後面n個字元。
若嫌每次修改**麻煩,可以改成如下:
echo off
set /p a=你要處理的檔案型別副檔名(如。txt、.xlsx...
set /p b=你想保留檔名後面幾個字元:
setlocal enabledelayedexpansionfor %%i in (*a%) do (set $=%%~ni
rename %%i !$b%!%xi)exit
如此便可以按照你輸入的副檔名,來靈活處理這一型別的檔案,保留後面n個字元了。
希望對你有幫助。
批處理 改檔名保留檔案前幾位
7樓:網友
你好,想要批量修改檔名字其實有個很好的方法哦,推薦以下方法給你,希望能辦到你!
操作步驟:第一步、開啟軟體後,點選「新增檔案」,然後將需要重新命名的所有檔案上傳到軟體中。
第二步、上傳後,在右側的設定中,可設定需要的內容。
第三步、設定好後,左側可預覽新檔名,直接顯示當前設定的樣式。
第四步、最後,點選「重新命名」按鈕即可。
8樓:公子七哥
批處理:
echo off
setlocal enabledelayedexpansionset n=3
for /f "delims=" %%a in ('dir /a-d *.') do(
set "name=%%~na"
ren "%%~a" "!name:~0,%n%!%xa"
pause注意:改完之後不能撤銷,謹慎使用。
這種簡單且數量不多的改名,我更傾向於用其他更容易操作的軟體來做。比如,我用的壓縮軟體好壓自帶批量檔案改名功能,選中要改名的檔案,然後右鍵選單裡找到批量檔案改名,設定好起始位和刪除字元數就行了。
bat批量以當前檔案的名字後幾位新建資料夾然後把檔案?
9樓:
不清楚你的實際檔案/情況,僅以問題中的樣例/說明為據複製貼上到記事本,另存為,編碼選ansi,跟要處理的檔案放一起執行@echo off
rem 擷取/提取檔名末尾的幾位字元作為名稱來建立資料夾,並把檔案剪下/移動到該新建的資料夾裡。
title %#% +/%@%z%cd /d "%~dp0"
rem 後4位字元。
set "n=4"
for /f "delims=" %%a in ('dir /a-d/b') do (
if /i "%%~nxa" neq "%~nx0" (set "fname=%%~na"
set "f=%%a"
setlocal enabledelayedexpansionif not exist "!fname:~-n%!\" md "!fname:~-n%!\"
echo;"!f!" --"!fname:~-n%!\"
endlocal))
echo;%#% +/%@%z%pause
exit
批量刪除jpg檔名前幾位字元和後幾位字元?
10樓:網友
1、新建txt文字檔案,拷貝下方批處理內容至txt檔案,然後重新命名txt檔案為bat檔案。
@echo off
setlocal enabledelayedexpansion
echo **執行前最好先備份資料,執行後無法恢復***
set /p format=請輸入需要操作的檔案格式:
set /p deletefrontnum=請輸入需要刪除檔名前多少個字元:
set /p deletebacknum=請輸入需要刪除檔名後多少個字元:
for /r %%i in (.do (
for /f "delims=" %%a in (' dir /b "%%i\*.format%" 2^>nul ') do (
set "t=%%~na"
ren "%%i\%%a" "!t:~%deletefrontnum%!%xa"
for /r %%i in (.do (
for /f "delims=" %%a in (' dir /b "%%i\*.format%" 2^>nul ') do (
set "t=%%~na"
ren "%%i\%%a" "!t:~0,-%deletebacknum%!%xa"
pause
2、將bat檔案拷貝至你需要操作重新命名檔案的資料夾下,如果存在子資料夾,則將批處理檔案拷貝至父資料夾中:
3、鑑於不同電腦登入使用者不一定具有管理員許可權,無法執行bat問題,右鍵此bat檔案【以管理員方式執行】,按如下操作輸入:
bat輸入。
4、如果存在批處理替換後檔案重名的不會進行處理,建議執行前先排查下是否又重名的,也可以執行完後按照修改日期排序看下是否有未執行成功的,未執行成功會提示如下資訊:
bat失敗提示。
批處理刪除檔名中的指定文字,寫個批處理刪除指定檔案或指定資料夾
把下面的批處理存為myren.bat,放在目標資料夾下,然後在cmd中進入目標路徑,輸入 myren.bat 任意內容 然後程式就會把所有mp4檔名中的 任意內容 刪掉。echo off setlocal enabledelayedexpansion for f delims i in dir mp...
關於批處理以時間命名檔名問題
基本上是對的。萬用字元 可表示代表任意個任意字元,當它固定位置搭配其他固定字串,就能匹配某類特點的多個檔名。當那些固定字串用變數表示了 也就是你說的 動態 如果需要用的某個命令的語法中支援萬用字元,則用此句命令就可組成你說的 動態管理 比如 copy date 4 date 5,2 dat e xx...
批處理按檔名自動建立多層資料夾並把檔案放入該資料夾中
複製貼上到記事本,另存為xx.bat,編碼選ansi,跟要處理的檔案放一起執行 echo off rem 將檔名按指定字元分割成多段並建立多層目錄及移動檔案到新建的相對應的目錄裡 mode con lines 3000 title z cd d dp0 for f delims a in dir a...