您好,
我目前用指令 7z a -tzip "MD_.zip" "MD*.txt"
可以將資料夾內所有的MD_*_*_*_*_*_*1_*_*_*.txt檔案只壓成一個MD_.zip檔.
但檔名不是我要的, 需要指定檔名, 請問要如何由MD_*_*_*_*_*_*1_*_*_*.txt檔名, 抓取所需的文字與修改呢?
然後把抓取出來的這一串文字放入, 我想要壓縮的名稱呢?
MD_P517D005_025_S11P_X2652B00011_10_031_MBIST_20150619_095006.txt
怎麼取出與變成下列字串
MD_P517D005_S11P_20150619095006
或是抓取檔名可以使用vba另外執行呢?
各位 哥 姊 我的手腕韌帶靠你們了.
我重新命名的方法都是
1.先把檔案名稱用echo新增文字檔案
2.再從新增的文字檔裡面抓字串回到批次檔裡面
3.做字串處理然後在另存新檔
4.把原本的檔案殺掉
指令的話因為太久沒用了,可以上網搜尋關鍵字"批次檔 字串處理"
就會有教學。
然後壓縮我是用ZIP,在cmd下打-help或/?他會跟你說要怎麼用
下面是zip指定路徑的範例,代碼因該跟7z不太一樣
WinRAR.exe a -r -m3 -T "C:\%today%_DATA.rar" "C:\Outxls"
先想辦法把檔名丟到str
範例
set str="0123456789"
set str1="str:~0,3"
rem str1="012"
(從第一個字開始往後算,總共取三個字)
set str2="str:~5,3"
rem str2="456"
set str3="str:~9,2"
rem str3="89"
set rst=%str1%%str2%@str3@
rem rst="01245689"
winzip (指令) "C:\old.txt"(原始檔案路徑) "C:\%rst%.zip"(指定壓縮檔案名稱和路徑)
因為小弟經驗也不多,只能跟您分享我的經驗到這裡,剩下只能靠您自己或其他前輩指點是否有更好的方法了。
您在做測試的時候,可以用echo %rst1%,看看是否是自己真正要抓的字串
'''
@echo off
setlocal
set FN=
for /f "tokens=" %%a in ('dir /b "MD_*_*1_**.txt"') do set FN=%%a
echo %FN%
rem a b c d e f g h i j
rem MD P517D005 025 S11P X2652B00011 10 031 MBIST 20150619 095006
rem MD_P517D005_S11P_20150619095006
for /f "tokens=1-10 delims=." %%a in ("%FN%") do set FN=%%a%%b_%%d_%%i%%j
echo %FN%
endlocal
'''