2012-08-03 30 views
9

Hallo Ich möchte eine Batch-Datei erstellen, um alle Unterordner zu bekommen. Kann jemand bitte helfen Sie mir dabei?Schleife durch Unterordner

+2

Ihren Geist Make-up ... wollen Sie eine Batch-Datei oder ein Skript Powershell? – Joey

Antwort

9

Dies ist in beiden Batch-Dateien oder Powershell trivial:

Batch:

for /r %%x in (*.sql) do (
    rem "(or whatever)" 
    sqlcmd "%%x" 
) 

Powershell:

Get-ChildItem -Recurse -Filter *.sql | 
    ForEach-Object { 
     sqlcmd $_.FullName # or whatever 
    } 
+0

Hi @Joey, gibt es irgendeine Methode, die sqlcmd verwendet, um alle Unterordner zu durchlaufen, ohne den Pfad des Unterordners zu codieren? und für die Powershell-Skript letzte Zeile, könnten Sie bitte Beispiel für diese "sqlcmd $ _ # oder was auch immer"? ich danke dir sehr –

1

Hier ist ein Powershell-Skript verwende ich die Größe des "zu bekommen Schulordner im Unterordner der Benutzerordner jedes Benutzers. IE. N: \ Benutzername \ UserNameOSXProfile \ Schule

SizeOfSchoolFolder.ps1

$schoolFolderTotalSize=0 

$foundChildren = get-childitem *\*OSXProfile\School 
foreach($file in $foundChildren){ 
    $schoolFolderTotalSize = $schoolFolderTotalSize + [long](ls -r $file.FullName | measure -s Length).Sum 
} 

switch($schoolFolderTotalSize) { 
    {$_ -gt 1GB} { 
    '{0:0.0} GiB' -f ($_/1GB) 
    break 
    } 
    {$_ -gt 1MB} { 
    '{0:0.0} MiB' -f ($_/1MB) 
    break 
    } 
    {$_ -gt 1KB} { 
    '{0:0.0} KiB' -f ($_/1KB) 
    break 
    } 
    default { "$_ bytes" } 
} 

zog ich die Zugabe von Zahlen aus: Adding up numbers in PowerShell

und die Herstellung Ordnergröße hübsch aussehen: Get Folder Size from Windows Command Line

Und Das \ * \ * OSXProfile \ School als Suche nach einem bestimmten Unterordner. Limit Get-ChildItem recursion depth

0

To 'xyz' mit 'abc' in allen Dateinamen ersetzen:

Get-ChildItem -Recurse -Filter *.mp3 | Rename-Item –NewName { $_.name –replace 'xyz','abc' }