2016-12-18 3 views
0

Dieser Stapelcode soll alle PDF-Dateien in dem vom Benutzer angegebenen Pfad durchsuchen und sie alle in den Basisordner kopieren und dann alles löschen, was sich in diesem Ordner befindet (Unterordner und Dateien). Wie kann ich meinen Code zwingen, nach mehreren Dateien wie pdf, txt und anderen zu suchen?So wenden Sie meine Suche auf Dateien mit unterschiedlicher Erweiterung im Stapel an

@echo off 
setlocal enabledelayedexpansion 
goto :main 
:main 

setlocal 

cls 
echo. 
echo Enter the home directory path where you want to apply the cleaning 
set /p path= 
echo %path% 
cd %path% 

for /d %%g in (*) do (
    echo %%g 
    cd %%g 
    for /r %%p in (*.pdf) do (
     set dest=!cd! 
     set app=/ 
     copy %%p !%dest%%app%! 
     echo %%p 
     echo !cd! 
    ) 
    for /d %%z in (*) do (
     rmdir %%z /s /q 
    ) 
    cd .. 
) 
pause 

endlocal 

goto :eof 
+0

Warum ist dies markiert [tag: powershell-v2.0]? In dieser Frage gibt es nichts, was mit PowerShell zusammenhängt. Außerdem funktioniert '!% Dest %% app%!' Nicht so, wie Sie es anscheinend tun. Die Dateien landen nur zufällig am vorgesehenen Ort, weil Sie zuerst dort "cd" haben. –

+0

Eine andere Sache, '% PATH%' ist eine Umgebungsvariable, die angibt, wo CMD nach externen Befehlen suchen wird. Indem Sie es so umdefinieren, wie Sie es tun, verhindern Sie, dass CMD überall nach externen Befehlen sucht, außer in dem von Ihnen angegebenen Verzeichnis und dem aktuellen Arbeitsverzeichnis. Definieren Sie% PATH% nicht in Ihren Skripten, wenn Sie nicht wissen, was Sie tun. –

+0

Ohh, mein schlechtes für die Verwendung von Pfad als Variablenname, danke für die Erwähnung, aber ich habe eine Abfrage, dass ich den Bereich als lokal (setlocal), die immer noch die Umgebungsvariable (% path%) betrifft @@ AnsgarWiechers –

Antwort

2

Nichts hindert Sie daran,

for /r %%p in (*.jpg *.png) do (
REM do something with %%p 
) 

Der Haken dabei ist, dass Sie eine beliebige Anzahl von Erweiterungen durch Raum withing Klammer getrennt verwenden können.

+1

In der Tat. Oder setze die Erweiterungen in eine Variable ('set 'extensions = *. Jpg * .png" ') und verwende diese Variable in der Schleife (' for/r %% p in (% extensions%) do ... '). –

Verwandte Themen