Czy ten plik wsadowy może być ulepszony i zawierać podfoldery?

2

Mam te linie w pliku .bat:

@echo off
pushd %*
for %%j in (*) do type nul > "%%j"
popd

Jeśli go uruchomię, zmieni wszystkie rozmiary plików na 0, w tym plik wsadowy. Jeśli używam go w CMD, mogę określić nazwę folderów, aby zmienić jako: makeitzero.bat FOLDER_NAME

Ale wiem tylko trochę o programowaniu, więc zastanawiam się, czy mogę też dołączyć podfoldery (jeśli uruchomię je z wiersza poleceń)?

Dzięki!


Uwaga: Jestem nowym użytkownikiem na tej stronie i nie jestem pewien, jak go właściwie używać, więc jeśli popełnię błąd (zły tytuł, złe znaczniki, nieistotne informacje itp.), Będę zadowolony usłyszeć to i następnym razem zrobić to lepiej.


Edytuj 1 : for /r zrobiłem sztuczkę. To działa jak urok:

@echo off
for /r "D:\DeleteInThis" %%a in (.) do (
    pushd %%a
    pushd %*
    for %%j in (*) do type nul > "%%j"
    popd
    )

Dzięki!

deviance
źródło

Odpowiedzi:

2

FOR ma kilka przełączniki trybu aby polecenie działało na różne sposoby. Powinieneś sprawdzić FOR /F który pozwala na przejście przez wyjście polecenia. Posługiwać się DIR dowództwo aby wyświetlić pliki i katalogi we wszystkich podkatalogach. Użyj /S przełączyć na wszystkie podkatalogi i /B mieć zwykłe wyjście (tylko pełna ścieżka do plików i folderów).

dir /s /b ".\*"

Aby połączyć wyjście z DIR z pętlą zmodyfikuj swoje polecenie FOR na coś takiego:

for /f "tokens=*" %%j in ('dir /s /b ".\*"') do type nul > "%%j"
bcs78
źródło