-1

ファイルを調べて一連のファイルを移動するバッチ ファイルが必要です
。問題は、複数のセットが存在する可能性があるため、ファイルを比較する必要があることです。

ファイルは互いに対応しています

セットの最初のファイルはBIAK1234
2 番目のファイルですBIPO1234
。1234 は単なるファイル番号であり、それがどのセットの一部であるかを示します。

したがって、バッチ ファイルは一連のファイルを見つけて、BIAK1234 and BIPO1234それらを別のファイルに移動する必要があります。

BIAK1234存在しない場合、スクリプトを終了する必要があります

ただし、ファイルがある場合: BIAK1234、BIAK12345、BIPO 1234、BIPO12345、および BIPO123456

BIAK123456 が存在するまで bipo123456 を残す必要があり、その後移動することができます

ファイルを比較するにはどうすればよいですか

バッチファイルでファイルを移動する方法と、ファイルが存在するかどうかを確認する方法を既に知っています ファイルを比較し、セットを決定し、セットのみを移動する方法がよくわかりません

4

1 に答える 1

2

私はあなたの質問に少し苦労しました。最初は、テキスト ファイルからファイル名を取得していると思っていました。しかし、あなたの最後の段落から、あなたは単にフォルダー内のファイルを扱っているだけだと思いました。

おっしゃる通り、個々のセット ID を特定することだけがややこしい点です。解決策は、SET コマンドを使用して部分文字列を取得するか、プレフィックスを何も置き換えないことです。詳細情報を取得するには、コマンドプロンプトset /?から入力します。

以下のソリューションでは、検索と置換の方法を使用することにしました。

@echo off
setlocal enableDelayedExpansion

set "source=c:\yourSourceFolder"
set "destination=c:\yourDestinationFolder"
set "file1=BIAK"
SET "file2=BIPO"

pushd "%source%"
for %%F in ("%file1%*") do (
  set "setID=%%F"
  set "setID=!setID:%file1%=!"
  if exist "%file2%!setID!" move "%%F","%file2%!setID!" "%destination%"
)
popd
于 2013-09-04T21:51:28.673 に答える