1

さまざまなファイルの大きなバッチがあり、すべてファイル拡張子がありません。

現在、Windows 7 Pro を使用しています。どのアプリケーションがこれらのファイルを開くかを決定するために「で開いて」実験し、それに合わせて手動で名前を変更することができます。

ただし、正しいファイル タイプ (通常は PDF、その他には JPG、HTML、DOC、XLS、および PPT が含まれます) を特定する方法と、適切なファイル拡張子を追加するバッチ リネームが必要です。

メモ帳でいくつかのファイルを開き、最初の 4 バイトを確認できます。場合によっては「%PDF」と表示されます。

小さなスクリプトでこれらのバイトを検査し、必要に応じて名前を変更できると思います。ただし、すべてのファイルがこのような簡単な方法を提供するわけではありません。HTML、JPG、DOC などは、そのような簡単な識別子を与えるようには見えません。

この Powershell メソッドは近いようです: https://superuser.com/questions/186942/renaming-multiple-file-extensions-based-on-a-condition

ここでの難点は、拡張子のないファイル タイプを処理する方法に焦点を当てることです。次に、最初の 4 バイトの識別子を持たないファイルをどうするか?

どんな助けにも感謝します!!

編集: ここで見られる TriD を使用したソリューション: http://mark0.net/soft-trid-e.html そして、Powershell を使用して TriD を実行する再帰的な方法: http://mark0.net/forum/index.php?topic=550.0

4

2 に答える 2

1

fileおそらく、Windows 用のユーティリティを入手して(Windowsの Linux の File コマンドと同等のものは何ですか? を参照)、ファイルの種類から拡張子にマップする簡単なスクリプトを作成することで、時間を節約できます。

編集:そのページに記載されている TriD ユーティリティは、すぐに使用できるように見えます。-ae および -ce オプションを参照してください)

于 2013-07-24T00:13:17.607 に答える
0

python3 を使用します。

import os,re
fldrPth = "path/to/folder" # relative to My Documents
os.chdir(fldrPth)
for i in os.listdir():
    with open(i,'r') as doc:
        st = doc.read(4)
    os.rename(i,i+'.'+re.search(r'\w+',st).group())

うまくいけば、これはうまくいくでしょう。コードをチェックするためのテスト ファイルがありません。バックアップを取ってから実行し、動作するかどうかをお知らせください。

于 2013-07-23T23:55:06.607 に答える