2017-09-11 2 views
-5
zu einem Ordner ‚Eimer‘ kategorisch nummerierte

Ich habe Dateien mit diesem Namen 1963.tif 1975.tif 2000.tif 2016.tifDateien verschieben

im Ordnernamen D:/Pläne und ich möchte zu bewegen, um diese Dateien in einen anderen Ordner, der von Datumsbereiche wie

D kategorisiert:/Scans/1900-1980 - A D:/Scans/2000-2020 - B

ich möchte die ersten beiden. Tif-Dateien, um zum A zu gehen und die letzten 2, um nach B.zu gehenfand ich ein Skript, das Dateien auf der Grundlage ihrer Startnummer, nicht aber auf die Bereiche

@ECHO ON 

SET Letters=(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) 
SET Numbers=(0,1,2,3,4,5,6,7,8,9) 
SET SourceDir=D:\Plans 
SET DestNumDir=D:\Scans 

FOR %%A IN %Letters% DO ECHO Y | MOVE "%SourceDir%\%%~A*.*" "%DestLetterDir%\%%~A\" 
FOR %%B IN %Numbers% DO ECHO Y | MOVE "%SourceDir%\%%~B*.*" "%DestNumDir%\%%~B\" 
GOTO EOF 
+2

dies ist eine Batchdatei – ArcSet

+0

Ändern Sie den Tag Batch nicht powershell –

Antwort

0
Get-ChildItem -Path D:\Plans | 
    ForEach-Object { 
     If ([Int]$_.BaseName -le 1980) { Move-Item $_.FullName -Destination 'D:\1900s\' } 
     If ([Int]$_.BaseName -ge 2000) { Move-Item $_.FullName -Destination 'D:\2000s\' } 
    } 

Diese Sie auf die Richtung, sollten Sie beginnen möchten, aber Ihre Frage ist nicht ganz klar bewegen.

0

versuchen Sie dies:

$DirStar="C:\Temp\test" 
$Before1980="C:\Temp\Scans\1900s" 
$After1980="C:\Temp\Scans\2000s" 

Get-ChildItem $DirStar -file -Filter "*.tif" | where basename -Match "^\d{4}$" | %{ 
    if ([int]$_.BaseName -le 1980) 
    { 
    move-item $_.FullName $Before1980 
    } 
    else 
    { 
    move-item $_.FullName $After1980 
    } 

}