2016-03-31 7 views
-2

ファイル名の形式は次のとおりです。先頭の数字はレイヤーで、2番目の数字は素材(3Dプリンター)です。バッチファイルでファイル名をシフト

01118_7.tif, 
01118_6.tif, 
01118_5.tif, 
01118_4.tif, 
01118_3.tif, 
01118_2.tif, 
01118_1.tif, 
01118_0.tif 

私がする必要があるのは、_1、_4、_6で終わるファイルを6桁上にシフトすることです。したがって、01124_1,01124_4,01124_6が残り、残りのファイルは同じままです。私はレイヤー00112_ *に至るまでそれをすべて行う必要があります。

できればバッチファイルでこれを行いたいと思います。ガイドに従ってみようとしていたが、名前の形式が私を引き上げている。 Basic excel format

+0

ようこそスタックオーバーフロー。 [2分ツアー](http://stackoverflow.com/tour)をご覧ください。 さらに、ヘルプセンターを開いて、少なくともこちらをご覧ください。 次に質問者から期待されることを知っておいてください: のコードを見せて、自分でタスクを解決し、タスクを完了できなかった理由を説明してください。申し訳ありませんが、スタックオーバーフローはフリーコード作成サービスではありません – JosefZ

+0

さらに、コマンドの書式設定の方法についてのヘルプがあります。私はこのサイトhttp://mintywhite.com/windows-7/7maintenance/mass-convert-file-names-windows-batch-file/を見ていましたが、材料番号の前にレイヤー番号が表示されていて問題を克服していました。 1つのファイル名の例を得ることができれば、スプレッドシートに値を設定し、そこから.batファイルを作ることができます。ファイルの名前を解析するのに役立つかもしれないワイルドカードコマンドがあるかどうか疑問に思うだけです。 –

答えて

1

テキストファイル内に表示されるファイル名を変更する必要があるのか​​、ファイルの名前を変更する必要があるのか​​わかりません。 JREPL.BATを使用して、テキストファイル内の


修正ファイル名:

jrepl "^\d{5}(?=_[146]\.tif)" "lpad(Number($0)+6,'00000')" /i /j /f test.txt /O - 


JREN.BATを使用して、現在のディレクトリ内のファイルの名前を変更しますいずれかの方法で、私は2つのハイブリッドのJScript /バッチ正規表現ユーティリティのいずれかを使用して、簡単な解決策を持っています:

jren "^\d{5}(?=_[146]\.tif$)" "lpad(Number($0)+6,'00000')" /i /j 


使用call jreplまたはcall jrenあなたはバッチスクリプト内のコマンドを入れた場合。

0

「ファイル名を6桁上にシフトする」というのは、実際には「ファイル名に6を加える」ということを理解するのにしばらく時間がかかりました。名前がファイルに含まれていないが、テキストファイルに配置されたテキストの行の場合は

@echo off 
setlocal EnableDelayedExpansion 

set "numbers=/1/4/6/" 
for /F "tokens=1,2 delims=_." %%a in ('dir /B /A-D *.tif') do (
    if "!numbers:/%%b/=!" neq "%numbers%" (
     set "newNum=1%%a+6" 
     ECHO ren "%%a_%%b.tif" "!newNum:~1!_%%b.tif" 
    ) 
) 

は、テキストファイルの名前で'dir /B /A-D *.tif'コマンドを変更します。

関連する問題