Jaki jest sposób wysyłania plików do kosza z wiersza poleceń?

39

Czy istnieje program wiersza polecenia, który może wysyłać pliki do kosza? To jest na XP i Vista.

justintime
źródło
2
Inne niż „del”?
pelms
2
Z jakiego systemu operacyjnego korzystasz?
ChrisF,
wyszedł, aby dodać XP i Vista
JustInTime
11
@pelms deltrwale je usuwa, a nie przenosi do kosza.
MiffTheFox,
2
Musisz więc pomyśleć, że nie ma żadnego powodu, aby mieć kosz. Według twojej logiki, po co przetwarzać pliki z Eksploratora zamiast po prostu trwale je usuwać? Być może nie widziałeś zastosowania, ale one istnieją. Niedawno chciałem usunąć stos plików z wielu folderów, ale chciałem je dwukrotnie sprawdzić przed usunięciem. Jedynym / najłatwiejszym sposobem na to było uruchomienie forpętli z wiersza polecenia, aby wysłać je do kosza, a następnie mogłem zobaczyć je wszystkie skonsolidowane w jednym miejscu, aby upewnić się, że są tam tylko pliki, które chciałem usunąć. przywróć niepoprawne pliki.
Synetech,

Odpowiedzi:

31

CmdUtils ma narzędzie o nazwie Recycledokładnie to robiące . [ bezpośrednie pobieranie ]

Więcej informacji :

Aby użyć polecenia recycle, pobierz plik zip CmdUtils i rozpakuj plik exe w folderze Windows. Dodanie ich do folderu Windows umożliwiłoby globalny dostęp do polecenia bez konieczności podawania całej ścieżki do pliku wykonywalnego. Następnie możesz zacząć korzystać z polecenia recycle, wpisując;

recycle filename.txt

Możesz także określić symbole wieloznaczne za pomocą poleceń, więc wpisanie w recycle * .txt spowoduje przetworzenie wszystkich plików tekstowych w bieżącym katalogu. Istnieje również opcja, aby ukryć okno dialogowe potwierdzenia usunięcia za pomocą flagi wymuszenia z poleceniem.

Aby usunąć plik bez konieczności potwierdzania, użyj polecenia

recycle –f filename.txt

Flaga –f każe poleceniu wymusić recykling bez pokazywania okna dialogowego potwierdzenia.

znak
źródło
19

Jeśli masz zainstalowany program PowerShell:

$sh = new-object -comobject "Shell.Application"
$ns = $sh.Namespace(0).ParseName("PATH\TO\FILE\TO\DELETE")
$ns.InvokeVerb("delete")
EBGreen
źródło
2
+1 Każde rozwiązanie PowerShell uzyska mój głos. Mam nadzieję, że następny Windows zastąpi cmd.exe programem PowerShell.
BinaryMisfit,
2
Wątpię, żeby to się wydarzyło bardzo długo. :)
EBGreen,
1
Jest to zdecydowanie zbyt wolne, szczególnie w przypadku recyklingu wielu plików (np. Odpowiednika PS for /r %i in (foobar.tmp) do recycle "%i").
Synetech,
1
@ BinaryMisfit wreszcie to się dzieje z Windows 10
phuclv
4

Długo miałem to pytanie - w końcu wziąłem sprawy w swoje ręce i zwinąłem swój własny cmd-recycle

Recycle.exeRzuciłem okiem na CmdUtils. Chodzi o to, że podczas recyklingu wyskakuje tradycyjne okno dialogowe „Jesteś pewien” (które można usunąć, dodając argument -f). Mój program właśnie to robi (ponieważ zawsze można cofnąć), co moim zdaniem jest bardziej odpowiednie do celów skryptowych.

kizzx2
źródło
Właśnie uruchomiłem go w systemie Windows Server 2008R2 i nie działa.
dthree
Nie działa również w systemie Windows 7. Po prostu pojawia się błąd „Nie można uruchomić aplikacji ...” i jeśli kliknę więcej informacji, przejdę do witryny microsoft.com: „Błędy inicjalizacji .NET Framework: zarządzanie doświadczeniem użytkownika” .
ashleedawg
4

Nie ma wbudowanego sposobu, aby to zrobić, ale istnieją narzędzia innych firm, które mogą to zrobić. Sprawdziłem folder zrzutu programu i znalazłem kilka opcji. Wszystkie działają tak samo (np. recycle filename.ext), Ale różnią się wydajnością, więc zależy to od twoich potrzeb (np. Czy przetwarzasz dużo plików?)

  • Maddog Software Recycle jest szybki i nie ma wyjścia, ale może rzucać tajemniczą-nie znaleziono błąd
  • DeleteXP EasyTools działa wolno, ponieważ wyświetla postęp w konsoli, ale jeśli przekierujesz go nul, jest to najszybszy i niezawodny
  • Odzyskiwanie cmd Chrisa Yuena jest najwolniejsze, nawet przy przekierowywaniu (źle sformatowanego) wyjścianul
Synetech
źródło
4

Może korzystać z zewnętrznego narzędzia:

nircmd moverecyclebin * .tmp

Yura Shinkarev
źródło
1

Próbowałem różnych programów do przenoszenia plików do kosza, ale z różnych powodów byłem z nich niezadowolony.

Największym problemem jest brak przyzwoitego statusu lub komunikatów o błędach. Niektóre po prostu zawodzą cicho, więc uważasz, że program coś przetworzył, ale w rzeczywistości nic nie zrobił!

Aby temu zaradzić, napisałem narzędzie wiersza polecenia o nazwie bin-it, które przenosi określone pliki do kosza systemu Windows. Obsługuje symbole wieloznaczne i zapewnia pełne raportowanie stanu i błędów. Jeśli coś pójdzie nie tak, będziesz o tym wiedział!

Jest całkowicie darmowy i można go pobrać tutaj jako binit.zip:
http://www.akiwi.co.uk/utilities.html

akiwi
źródło
Polecam zmienić nazwę. „Bin It” przypomina mi coś w rodzaju konwersji binarnej ASCII->.
can-ned_food
1

Bez korzystania z narzędzi innych firm nie sądzę, że istnieje „sposób wysyłania plików do kosza z wiersza poleceń”. Pełną ścieżkę do kosza można uzyskać w systemie Windows 7-10 w następujący sposób:

::get current user sid
for /f "tokens=2" %%i in ('whoami /user /NH') do set UID=%%i
:: create full path to current user recycle bin in a variable
set recyclebin=%systemdrive%\$Recycle.Bin\%UID%

echo %recyclebin%

Problem polega na tym, że jeśli po prostu przeniesiesz tam plik, nie pojawi się on w koszu. Będziesz mógł to zobaczyć tylko w wierszu polecenia. Kosz to specjalny folder. Metoda Windows API polegająca na przenoszeniu elementów do kosza zmienia nazwę pliku i przechowuje informacje o nim w zastrzeżonym pliku informacyjnym lub plikach, w zależności od wersji systemu operacyjnego. Narzędzia innych firm sugerowane w powyższych odpowiedziach wywołują te metody API, które obsługują to wszystko za Ciebie.

Więcej informacji tutaj: https://dereknewton.com/2010/06/recycle-bin-forensics-in-windows-7-and-vista/

TroyK
źródło
Witamy w Super User. Twoja odpowiedź wydaje się wyjaśniać, jak zbudować ścieżkę do aktualnie zalogowanego kosza użytkownika, ale nie wydaje się wyjaśniać, jak wykorzystać te informacje do wysyłania plików do kosza zgodnie z żądaniem OP. Edytuj swój post, aby uwzględnić tę ostatnią część. Dziękuję za pomoc.
Twisty Impersonator
Zawiera prawie wszystkie informacje, które należy napisać, poza faktycznym przedstawieniem go, z wyjątkiem danych INFO2 i $ I, którymi trzeba by manipulować.
can-ned_food
Daj mi znać, gdy odpowiedź zawiera skrypt cmd.exe lub wsh.exe, który to robi, a następnie poprę! :-) Cóż, myślę, że wsh technicznie nie ma zastosowania do pytania, ale pytanie jest raczej niejasne.
can-ned_food
1

Bez programów zewnętrznych - deleteJS.bat. Używa Shell.Applicationmetody czasownika invoke. użycie jest proste:

call deleteJS.bat c:\someFile.txt
call deleteJS.bat d:\someFolder
npocmaka
źródło
0

Możesz spróbować RecycleIt . Wyśle pliki do Kosza systemu Windows za pośrednictwem wiersza polecenia.

PRZYKŁADOWE UŻYCIE:

recycleIt.exe C:\temp\example.txt /quit

UWAGA: Musisz dodać „/ quit”, inaczej pojawi się okno, które pozostanie otwarte. Może to być problematyczne w przypadku sesji konsoli bezgłowej.

Michael Weiner
źródło