BAT腳本(批處理)去掉多文件2進制的前4個字節(jié),并重新生成同名png文件

[重要通告]如您遇疑難雜癥,本站支持知識付費業(yè)務,掃右邊二維碼加博主微信,可節(jié)省您寶貴時間哦!

這是一個網(wǎng)友問的一個問題,他的想法是下面這個bat的作用是把拖入的文件去掉2進制的前4個字節(jié),并重新生成同名png文件。。目前問題是一次只能拖入一個文件,,能不能優(yōu)化以下實現(xiàn)能多個文件拖入???

<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實現(xiàn)的效率更高;就是把下面帶代碼保存為.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號又微信號)右上方掃一掃可加博主微信

所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!

支付寶贊助
微信贊助

免責聲明,若由于商用引起版權糾紛,一切責任均由使用者承擔。

您必須遵守我們的協(xié)議,如您下載該資源,行為將被視為對《免責聲明》全部內(nèi)容的認可->聯(lián)系老梁投訴資源
LaoLiang.Net部分資源來自互聯(lián)網(wǎng)收集,僅供用于學習和交流,請勿用于商業(yè)用途。如有侵權、不妥之處,請聯(lián)系站長并出示版權證明以便刪除。 敬請諒解! 侵權刪帖/違法舉報/投稿等事物聯(lián)系郵箱:service@laoliang.net
意在交流學習,歡迎贊賞評論,如有謬誤,請聯(lián)系指正;轉載請注明出處: » BAT腳本(批處理)去掉多文件2進制的前4個字節(jié),并重新生成同名png文件

發(fā)表回復

本站承接,網(wǎng)站推廣(SEM,SEO);軟件安裝與調試;服務器或網(wǎng)絡推薦及配置;APP開發(fā)與維護;網(wǎng)站開發(fā)修改及維護; 各財務軟件安裝調試及注冊服務(金蝶,用友,管家婆,速達,星宇等);同時也有客戶管理系統(tǒng),人力資源,超市POS,醫(yī)藥管理等;

立即查看 了解詳情