導航:首頁 > 文件類型 > 文件名截取

文件名截取

發布時間:2023-08-10 10:48:52

『壹』 bat批量截取文件

你查一下for的用法,就是一個變數擴展而已。
就是%~ni這種形式

for的用法如下:

For

對一組文件中的每個文件運行指定的命令。

語法

for {%variable|%%variable} in (set) do command [ CommandLineOptions]

參數

{%variable|%%variable}
必需。代表可替換的參數。使用 %variable 通過命令提示符執行 for 命令。使用 %%variable 在批處理文件中執行 for 命令。變數要區分大小寫,並且必須用 Alpha 值表示,例如,%A、%B 或 %C。
(set)
必需。指定要用指定命令處理的一個或多個文件、目錄、數值范圍以及文本字元串。需要括弧。
command
必需。指定要對包括在指定 (set) 中的每個文件、目錄、數值范圍以及文本字元串所執行的命令。
CommandLineOptions
指定要通過指定命令使用的任何命令行選項。
/?
在命令提示符顯示幫助。
注釋

使用 for
可以在批處理文件中或直接從命令提示符使用 for 命令。

使用批處理參數
下列屬性適用於 for 命令:

for 命令使用指定 set 中的每個文本字元串替換 %variable 或 %%variable,直到 command 處理所有文件為止。
記住,for variable名是區分大小寫、全局的,並且每次總共不超過 52 個是活動的。
要避免批處理參數從 %0 到 %9 混淆,對 variable 可以使用除數字 0 到 9 之外的任何字元。對於簡單的批處理文件,單個字元即可奏效,例如 %%f。
在復雜的批處理文件中可以使用 variable 的多個值來區分不同的可替換變數。
顯示一組文件
set 參數可以代表單個或多個文件組。可以使用通配符(即,* 和 ?)指定文件組。以下為有效文件組:

(*.doc)

(*.doc *.txt *.me)

(jan*.doc jan*.rpt feb*.doc feb*.rpt)

(ar??1991.* ap??1991.*)

在使用 for 命令時,set 中的第一個值代替 %variable 或 %%variable,然後由指定的命令處理該值。這一直會繼續下去,直到處理完與 set 值相對應的所有文件(或文件組)為止。

使用 in 和 do 關鍵字
In 和 do 不是參數,但必須將它們與 for 一起使用。如果省略其中任何一個關鍵字,就會出現錯誤消息。

使用 for 的其它形式
如果命令擴展名處於啟用狀態(即,默認設置),則支持 for 的下列其它形式:

僅為目錄
如果 set 包含通配符(* 和 ?),則為匹配 set 的每個目錄(而不是指定目錄中的文件組)而執行指定的 command。語法是:

for /D {%% | %}variable in (set) do command [CommandLineOptions]

遞歸
進入根目錄樹 [Drive:]Path,在樹的每個目錄中執行 for 語句。如果在 /R 後沒有指定目錄,則假定為當前目錄。如果 set 只是一個句號 (.),則只列舉目錄樹。語法是:

for /R [[Drive :]Path] {%% | %}variable in (set) do command [CommandLineOptions]

重復數值范圍
使用迭代變數設置起始值 (start#) ,然後一步步執行一系列設置范圍的值,直到該值超過設置的終止值 (end#)。/L 將通過對 start# 與 end# 進行比較,執行迭代變數。如果 start# 小於 end#,就會執行該命令。如果迭代變數超過 end#,則命令解釋程序退出此循環。也可以使用負 step# 以遞減數值的方式一步步執行此范圍內的值。例如,(1,1,5) 生成順序 1 2 3 4 5,而 (5,-1,1) 則生成順序 (5 4 3 2 1)。語法是:

for /L {%% | %}variable in (start#,step#,end#) do command [CommandLineOptions]

重復和文件解析
使用文件解析過程處理命令輸出、字元串和文件內容。使用迭代變數定義要檢查的內容或字元串,以及使用各種 ParsingKeywords 選項進一步修改解析方式。使用 ParsingKeywords 令牌選項指定哪些令牌應該傳遞為迭代程序變數。注意:在沒有使用令牌選項時,/F 將僅檢查第一個令牌。

文件解析過程包括讀取輸出、字元串或文件內容、分成獨立的文本行及然後將每行解析成零個或更多個令牌。然後通過設置為令牌的迭代程序變數值,調用 for 循環。默認情況下,/F 傳遞每個文件每一行的第一個空白分隔符號。跳過空行。語法的不同點為:

for /F ["ParsingKeywords"] {%% | %}variable in (filenameset) do command [CommandLineOptions]

for /F ["ParsingKeywords"] {%% | %}variable in ("LiteralString") do command [CommandLineOptions]

for /F ["ParsingKeywords"] {%% | %}variable in ('command') do command [CommandLineOptions]

filenameset 參數指定一個或多個文件名稱。在繼續到 filenameset 中的下一個文件之前,每個文件都會被打開、讀取和處理。要覆蓋默認解析行為,指定 "ParsingKeywords"。這是一個引用字元串,它包含一個或多個關鍵字以指定不同的解析選項。

如果使用 usebackq 選項,請使用如下語法之一:

for /F ["usebackqParsingKeywords"] {%% | %}variable in ("filenameset") do command [CommandLineOptions]

for /F ["usebackqParsingKeywords"] {%% | %}variable in ('LiteralString') do command [CommandLineOptions]

for /F ["usebackqParsingKeywords"] {%% | %}variable in (`command`) do command [CommandLineOptions]

下表列出可以用於 ParsingKeywords 的解析關鍵字。

關鍵字 說明
eol=c 指定行尾字元(只一個字元)。
skip=n 指定在文件的開頭跳過的行數。
delims=xxx 指定定界符集合。這將替換空格和製表符的默認分隔符集。
tokens=x,y,m-n 指定將哪些令牌從每行傳遞到每個迭代的 for 正文。結果就分配了附加變數名稱。m-n 格式是一個范圍,指定從 mth 到 nth 的令牌。如果 tokens=字元串中最後一個字元是星號 (*),則將分配附加的變數,並在解析的最後一個令牌後在行上接收剩餘的文本。
usebackq 指定可以使用引號引用 filenameset 中的文件名稱,將後面帶有引號的字元串作為一個命令執行,而帶有單引號的字元串是文字字元串命令。
變數替換
已經增強了 for 變數引用的替換修改程序。下表列出可選語法(對於任意變數 I)。

帶有修改程序的變數 說明
%~I 展開刪除任何前後引號 ("") 的 %I。
%~fI 將 %I 展開到完全合格的路徑名。
%~dI 只將 %I 展開到驅動器號。
%~pI 只將 %I 展開到路徑。
%~nI 只將 %I 展開到文件名。
%~xI 只將 %I 展開到文件擴展名。
%~sI 展開路徑以只包含短名稱。
%~aI 將 %I 展開到文件的文件屬性。
%~tI 將 %I 展開到文件的日期和時間。
%~zI 將 %I 展開到文件大小。
%~$PATH:I 搜索 PATH 環境變數所列出的目錄,並將 %I 展開到第一個找到的完全合格的名稱。如果沒有定義環境變數名稱,或搜索沒有找到文件,則此修改程序擴展成空字元串。
下表列出可用來獲得綜合結果的修改程序組合。

變數(使用組合的修改程序) 說明
%~dpI 只將 %I 展開到驅動器號和路徑。
%~nxI 只將 %I 展開到文件名和擴展名。
%~fsI 將 %I 展開到只包含短名稱的完整路徑名。
%~dp$PATH:I 在 PATH 環境變數中所列出的目錄中搜索 %I,並展開到第一個找到結果的驅動器號和路徑。
%~ftzaI 將 %I 展開到輸出行(如 dir一樣)。
在上述範例中,可以用其它有效值替換 %I 和 PATH。有效的 for 變數名終止 %~ syntax。

使用大寫變數名(例如 %I),可以使代碼更具可讀性,並且避免與不區分大小寫的修改程序混淆。

解析字元串
通過將 Filenameset 包括在圓括弧內,並且外面再帶上單引號(即,'filenameset'),可以使用 for /F 對直接字元串解析邏輯。將 Filenameset 視為從某個文件輸入的單行,然後接受解析。

解析輸出
通過將圓括弧之間的 filenameset 變為後面帶有引號的字元串,可以利用 for /F 命令解析命令輸出。將它作為命令行,此命令被傳遞給子 Cmd.exe,並將輸出捕獲到內存並進行解析,就象它是一個文件一樣。

範例

要在批處理文件中使用 for,請使用以下語法:

for %%variable in (set) do command [CommandLineOptions]

要通過使用可替換變數 %f 顯示當前目錄中擴展名為 .doc 或 .txt 的所有文件的內容,請鍵入:

for %f in (*.doc *.txt) do type %f

在前述範例中,當前目錄中擴展名為 .doc 或 .txt 的每個文件都被替代為變數 %f ,直到每個文件的內容都顯示為止。要在批處理文件中使用該命令,只需使用 %%f 替換 %f 的每個事件。否則忽略此變數,並顯示一條錯誤消息。

要解析文件,同時忽略注釋行,請鍵入:

for /F "eol=; tokens=2,3* delims=," %i in (myfile.txt) do @echo %i %j %k

這個命令解析 myfile.txt 文件的每一行,忽略以分號開頭的行,將第二和第三個令牌從各行傳遞到 FOR 正文(令牌通過逗號或空格分隔)中。FOR 語句的正文引用 %i 以獲得第二個令牌,引用 %j 以獲得第三個令牌,引用 %k 以獲得其餘全部令牌。如果您提供的文件名包含空格,請使用引號將文本引起來(例如,"File Name")。要使用引號,必須使用 usebackq。否則,就將引號解釋為定義要解析的文字字元串。

%i 在 FOR 語句中明確聲明,並且 %j 和 %k 使用 tokens= 隱含聲明。只要它不會引起嘗試聲明高於字母「z」或「Z」的某個變數,則使用 tokens= 可以指定最多 26 個令牌。

要通過將 filenameset 放在括弧之間來解析命令輸出,請鍵入:

for /F "usebackq delims==" %i IN (`set`) DO @echo %i
這個範例列舉當前環境中的環境變數名。

『貳』 linux對文件名進行操作——截取

在shell中進行文件操作時,我們很多時候想對文件名進行截取,例如去掉文件名的後綴,而只保留剩餘的部分。下面介紹使用 ${} 來完成上述任務。

我們想對 share/home/jianshu_test.txt 進行操作,輸出下列內容:

要完成這個任務,可以首先把 jianshu_test.txt 提取出來:

然後再進行截取:

記住兩個原則:

此外:

『叄』 截取文件名但去掉後綴名

點開我的電腦,點工具,文件夾選項,點擊查看,找到隱藏已知文件類型的擴展名,把其勾上就可以了,點應用再點確定就OK了

『肆』 Excel用公式函數提取文件名

1、Mid函數MID(text, start_num, num_chars) text 文本or 文本位置 start_num 啟始數字,num_chars 結束數字
使用格式:MID(text,start_num,num_chars)
參數說明:text代表一個文本字元串;start_num表示指定的起始位置;num_chars表示要截取的數目。
應用舉例:假定A47單元格中保存了「我喜歡天極網」的字元串,我們在C47單元格中輸入公式:=MID(A47,4,3),確認後即顯示出「天極網」的字元。

SEARCH函數
功能:用來返回指定的字元串在原始字元串中首次出現的位置 ,從左到右查找,忽略英文字母的大小寫。
使用格式:SEARCH(find_text,within_text,start_num)
find_text:要查找的文本字元串
within_text:要在哪一個字元串查找
start_num:從within_text的第幾個字元開始查找。
注意:在find_text中,可以使用通配符,例如:問號「?」和星號「*」。其中問號「?」代表任何一個字元,而星號「*」可代表任何字元串。如果要查找的字元串就是問號或星號,則必須在這兩個符號前加上「~」符號。


2、返回當前工作表的名稱:=MID(CELL("filename"),SEARCH("]",CELL("filename"))+1,LEN(CELL("filename"))-SEARCH("]",CELL("filename")))
C:\Users\DA\Desktop\[B8035M-A0.00.001.xlsx]Sheet1
3、僅插入當前文件名:=MID(CELL("filename"),SEARCH("[",CELL("filename"))+1, SEARCH("]",CELL("filename"))-SEARCH("[",CELL("filename"))-1)
僅插入當前工作表明:
=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))

『伍』 批量截取文件名創建文件夾並移動文件

不清楚你的實際文件/情況,僅以問題中的樣例/說明為據
復制粘貼到記事本,另存為xx.bat,編碼選ANSI,跟要處理的文件放一起運行

<#:
cls
@echooff
rem以文件名末尾最後一個指定字元(短橫杠)為界將文件名分離成前後兩部分,將前面部分作為文件夾名創建文件夾並把文件剪切/移動到該新建的文件夾里,最後再以後面部分重命名文件
modeconlines=3000
set#=Anyquestion&set@=WX&set$=Q&set/az=0x53b7e0b4
title%#%+%$%%$%/%@%%z%
cd/d"%~dp0"
powershell-NoProfile-ExecutionPolicybypass"Invoke-Command-ScriptBlock([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default)))-Args'%~dp0'"
echo;%#%+%$%%$%/%@%%z%
pause
exit
#>
$path=$args[0].trimend('');
$files=@(dir-liter$path|?{(@('.jpg')-contains$_.Extension)-and($_-is[System.IO.FileInfo])});
for($i=0;$i-lt$files.length;$i++){
$m=[regex]::match($files[$i].Name,'^(.+)-([^-]+.[^.-]+)$');
if($m.Success){
$newfolder=$m.groups[1].value.trim();
$newfile=$newfolder+''+$m.groups[2].value.trim();
$newpath=$path+''+$newfile;
if(-not(test-path-liter$newfolder)){[void](md$newfolder)};
write-host($files[$i].Name+'-->'+$newfile);
};
}

『陸』 js中怎麼截取文件後綴名

可以使用js的attr方法和抄exec方法實現截取文襲件後綴名。

具體步驟如下:

需要准備的材料分別是:電腦、瀏覽器、ultraedit。

1、在ue編輯器中新建一個空白的html文件,js文件。

『柒』 linux 文件路徑截取 basename,dirname

2.命令格式

3.選項說明

4.常用示例

(1)獲取文件名,不包含目錄。

(2)獲取文件名,不包含目錄與後綴。

(3)同時獲取多個文件名,不包含目錄祥鬧與後綴。

(4)如果路徑最後一個是目錄,那麼即匹配最後一個目錄的名字。

2.命令格式

3.選項說明

4.常用示例

(1)獲取目錄部分,剝掉文件名。

(2)獲取目錄部分,剝掉文件名,後跟多個文件路徑。

(3)獲取目錄的目錄。即如果文件路徑最後一個字元是 /,那麼剝離倒數第二個 / 及其後的內容。

(4)如果文件路徑中不包含 /,那麼輸謹鋒罩出 . 表示當前目錄。

(5)路徑是根目錄的特殊情況。不剝除任何基或內容,輸出 /。

閱讀全文

與文件名截取相關的資料

熱點內容
類似於vb編程的有哪些語言 瀏覽:684
數據驗證對話框中選項有哪些 瀏覽:218
word文件半隱半現 瀏覽:971
xml文件如何解析 瀏覽:391
pcapng格式的文件用什麼打開 瀏覽:530
百度網盤的文件怎麼傳入u盤 瀏覽:781
梨子linux 瀏覽:30
office2013找不到文件 瀏覽:877
msp430獨立按鍵程序 瀏覽:592
如何固定表格數據的位數 瀏覽:544
編程貓項目分析的思路有哪些 瀏覽:927
編程能玩什麼游戲 瀏覽:13
怎麼用win10鏡像 瀏覽:552
10歲沒接觸編程學什麼程序好 瀏覽:375
jsselect必填 瀏覽:784
python學習編程需要什麼基礎 瀏覽:114
ug打開文件找不到 瀏覽:859
獲取登錄數據失敗怎麼解決 瀏覽:30
極迅加速沒網路 瀏覽:766
京東代升級 瀏覽:488

友情鏈接