Dunque
1) Ha perfettamente ragione archimede, FileCount va DOPO il MakeDir, non so perché ma ero convinto parlasse di DirCount
2) l'inizializzazione della variabile non deve essere fatta con /A, quel parametro si usa solo per cambiarne il valore con una espressione:
http://ss64.com/nt/set.html3) Su windows 7/8 non si deve usare COUNT=%COUNT% + 1 per incrementare il valore di una variabile ma invece COUNT=!COUNT! + 1
http://batcheero.blogspot.it/2007/06/ho ... nsion.html4) all'inizio dello script va esplicitato "setlocal ENABLEDELAYEDEXPANSION"
SOno arrivato a questo codice ma NON funzion se nel nome del file ci sono degli spazi.
Che devo cambiare?
- Codice: Seleziona tutto
SETLOCAL ENABLEDELAYEDEXPANSION
echo off
set DataMax=5
set DataLoc=TestFolder
set DirCount=0
:MakeDir
set FileCount=0
set /A DirCount=!DirCount! + 1
MKDIR !DataLoc!\!DirCount!
FOR /F %%a in ('DIR /B !DataLoc!\*.txt') do (
if !FileCount! LSS %DataMax% (MOVE !DataLoc!\"%%a" !DataLoc!\!DirCount!) else (GOTO MakeDir)
set /A FileCount=!FileCount! + 1
echo ContaFile: !FileCount!
echo Massimo: %DataMax%
echo Sposta questo: !DataLoc!\%%a
echo Spostalo qui: !DataLoc!\!DirCount!
echo ----------------------------------
pause
)
pause
PS: grazie archimede, hai postato mentre scrivevo e provavo!