BAT腳本(批處理)去掉多文件2進制的前4個字節,并重新生成同名png文件
[重要通告]如您遇疑難雜癥,本站支持知識付費業務,掃右邊二維碼加博主微信,可節省您寶貴時間哦!
這是一個網友問的一個問題,他的想法是下面這個bat的作用是把拖入的文件去掉2進制的前4個字節,并重新生成同名png文件。。目前問題是一次只能拖入一個文件,,能不能優化以下實現能多個文件拖入???
<code ' & cls & cscript.exe /nologo /e:vbscript "%~f0" "%~f1" "%~n1.png" Set oStream = CreateObject("ADODB.Stream") oStream.Type = 1 'adTypeBinary oStream.Mode = 3 'adModeReadWrite oStream.Open() With CreateObject("ADODB.Stream") .Type = 1 'adTypeBinary .Mode = 3 'adModeReadWrite .Open() .LoadFromFile WScript.Arguments(0) .Position = 4 .CopyTo oStream .Close() End With oStream.SaveToFile WScript.Arguments(1), 2 'adSaveCreateOverWrite oStream.Close()
其實完全是可以的,但更建議是VBS,這樣就更好用,比bat實現的效率更高;就是把下面帶代碼保存為.vbs即可;
<code '獲取被拖拽的文件集合 Set files = WScript.Arguments.Unnamed 'Setup Objects Set FSO = CreateObject("Scripting.FileSystemObject") For Each file In files If FSO.FileExists(file) Then '處理文件,并輸出同名png文件 Set oStream = CreateObject("ADODB.Stream") oStream.Type = 1 'adTypeBinary oStream.Mode = 3 'adModeReadWrite oStream.Open() With CreateObject("ADODB.Stream") .Type = 1 'adTypeBinary .Mode = 3 'adModeReadWrite .Open() .LoadFromFile file .Position = 4 .CopyTo oStream .Close() End With newFileName = FSO.GetParentFolderName(file) & "\" & FSO.GetBaseName(file) & ".png" oStream.SaveToFile newFileName, 2 'adSaveCreateOverWrite oStream.Close() End If Next
有人想說,我想使用bat腳本,安排~但是最多只能拖入并處理成功9個文件,想更多,還是用上面的.VBS吧;
<code' & cls & cscript.exe /nologo /e:vbscript "%~f0" "%~f1" "%~f2" "%~f3" "%~f4" "%~f5" "%~f6" "%~f7" "%~f8" "%~f9" '獲取被拖拽的文件集合 Set files = WScript.Arguments.Unnamed 'Setup Objects Set FSO = CreateObject("Scripting.FileSystemObject") For Each file In files If FSO.FileExists(file) Then '處理文件,并輸出同名png文件 Set oStream = CreateObject("ADODB.Stream") oStream.Type = 1 'adTypeBinary oStream.Mode = 3 'adModeReadWrite oStream.Open() With CreateObject("ADODB.Stream") .Type = 1 'adTypeBinary .Mode = 3 'adModeReadWrite .Open() .LoadFromFile file .Position = 4 .CopyTo oStream .Close() End With newFileName = FSO.GetParentFolderName(file) & "\" & FSO.GetBaseName(file) & ".png" oStream.SaveToFile newFileName, 2 'adSaveCreateOverWrite oStream.Close() End If Next
這個主要給自己也記錄一下;
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!
賞
支付寶贊助
微信贊助
免責聲明,若由于商用引起版權糾紛,一切責任均由使用者承擔。
您必須遵守我們的協議,如您下載該資源,行為將被視為對《免責聲明》全部內容的認可->聯系老梁投訴資源 LaoLiang.Net部分資源來自互聯網收集,僅供用于學習和交流,請勿用于商業用途。如有侵權、不妥之處,請聯系站長并出示版權證明以便刪除。
敬請諒解! 侵權刪帖/違法舉報/投稿等事物聯系郵箱:service@laoliang.net
意在交流學習,歡迎贊賞評論,如有謬誤,請聯系指正;轉載請注明出處: » BAT腳本(批處理)去掉多文件2進制的前4個字節,并重新生成同名png文件