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
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. –
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. –
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 –