0

次のことを行うバッチファイルを作成する方法を誰か教えてください。

  1. 次の日付形式 MMDDYYYY でフォルダーを作成します。
  2. 現在のディレクトリで最大のファイルを検索し、手順 1 で作成したフォルダーにコピーします。
  3. また、見つかった最大のファイルに一致する 2 番目のファイルを現在のディレクトリで検索し、手順 1 で作成したディレクトリにコピーします。
For example: 
file1test.txt (3kb) 
file2test.txt (10 kb)
file1test.log (2kb) 
file2test.log (2kb)

file2test.txtは最大のファイルであるため、選択されてフォルダーにコピーされます。また、最大のファイルのパターンと一致するため、file2test.logも選択されて同じフォルダーにコピーされます。

4

1 に答える 1

2

Andriyがすでに指摘しているように、あなたの投稿には3つの質問があり、FirstとSecondはすでにSOで回答されています。

最新の問題を解決するにFORは、ファイルのリストを繰り返し処理し、照合するファイル名の一部だけを比較する必要があります。

あなたを助け、あなたが始めるのを助けるために、次のサンプルコードを見てください。あなたの例から、拡張子なしで名前の部分だけを取りたいと仮定します。この例では、必要な拡張子は.logと.txtであると仮定しています。フォルダ部分を完成させ、ニーズに合わせて変更および拡張する必要があります。そして、追加のボーナスとして、このサンプルを理解できるようにするために、私もあなたの2番目の問題を解決しなければなりませんでした:)

@echo off
setlocal enabledelayedexpansion enableextensions
set destfolder=Folder01012001
set largest=
set largestname=
set /a largestsize=0
for %%a in (*.txt) do (
  if %%~za gtr !largestsize! (
    set largest=%%a
    set largestname=%%~na
    set /a largestsize=%%~za
  )
)
set match=
for %%a in (*.log) do (
  if %%~na==!largestname! (
    set match=%%a
  )
)
echo copy "!largest!" %destfolder%
echo copy "!match!" %destfolder%
endlocal
于 2012-10-09T07:34:52.600 に答える