0
我正在尋找一個簡短的.bat腳本,它可以拉出部分文件名並將其設置爲變量。該文件的名稱將始終如一地爲以下結構,在一個時間但有可能超過1文件:將部分文件名稱拉爲變量
B06XTJ8RX3.MAIN.PC_430.jpg
或
B06XTJ8RX3.MRG1 .PC_430.jpg
儘管可能有多個文件,但前10個字符將是相同的。
我想命名'B06XTJ8RX3'作爲變量。到目前爲止,我只能通過將文件名寫入第一個''來完成此操作。插入文本文檔,然後拉取文本文件的內容,刪除重複的字符串。所有這些似乎都沒有必要。
set images=C:\file_path\images\
for /F "tokens=1 delims=." %%A IN ('dir /b %images%') do echo %%A >> dupes.txt
type NUL > asins.txt
for /F %%i in ('type dupes.txt ^| sort') Do (
If NOT "!prev!" == "%%i" (echo %%i>>asins.txt)
set prev=%%i
)
type NUL > dupes.txt
set prev=5000
有沒有人有一個簡單的解決方案呢?
我意識到我的問題是缺少一些信息(我做了編輯)。文件的數量將是未知的。但是,所有文件將具有相同的前10個字符。我需要的是一個.bat腳本來簡單地修剪最後12個字符,在這個例子中保留我的變量= B06XTJ8RX3。 – Garrett
美麗 - 這最後一點有效。如果你有一分鐘,你會解釋%name%變量是如何工作的?這是一個標準變量嗎? – Garrett
'name'不是一個神奇的變量名 - 它可能是'zphhrodh6d',如果這在你的應用程序中有任何意義。'dir'提供'/ b'(基本)形式的文件名列表 - 只有名稱'/ a-d'沒有目錄名。 'FOR/f'分析列表,'tokens = 1'將第一個標記傳遞給'%% A'(指定的*變量*(標記= 1是默認值並且是冗餘的),'delims = .'意味着行使用'.'進行「標記化」,因此該行所需的部分(直到點)出現在'%% A'中,然後將其設置爲用戶變量(名稱無關),其中引號分隔 – Magoo