Arquivo, script ou atalho em lote para excluir o arquivo mais recente em uma pasta especificada

0

alguém sabe como fazer um arquivo de lote ou script ou alguma outra coisa simples como um atalho que chama algum exe para fazer o seguinte:

Eu quero clicar em algo (arquivo em lote, script ou atalho) que irá excluir o último arquivo em uma pasta especificada .. apenas o último (mais recente) arquivo.

Por que eu iria querer fazer isso?

Às vezes, eu acidentalmente pego uma captura de tela "errada". Gostaria de poder eliminá-lo rapidamente.

    
por Mikey 23.10.2014 / 18:42

2 respostas

4

Arquivo em lote:

@echo off
pushd "c:\yourPath"
for /f "eol=: delims=" %%F in ('dir /b /a-d /o-d') do (
  del "%%F"
  exit /b
)

Linha de comando (sem script em lotes) que pode ser incluída diretamente em um atalho.

cmd /c pushd "c:\yourPath"&for /f "eol=: delims=" %F in ('dir /b /a-d /o-d') do @(del "%F"&exit)" 
    
por 23.10.2014 / 19:20
1

Usando o PowerShell:

dir C:\YourPath | sort {$_.LastWriteTime} -desc | select -First 1 | del

Ou ligando para o PowerShell a partir de um script em lote:

PowerShell -ep unrestricted -Command "dir C:\YourPath | sort {$_.LastWriteTime} -desc | select -First 1 | del"

Como proteção contra acidentalmente chamá-lo mais de uma vez (se você não fizer screenhosts com muita freqüência), você pode limitar a idade do arquivo excluído para e. g. 10 minutos adicionando isso antes do | del :

| where {$_.LastWriteTime -gt (get-date).AddMinutes(-10)}
    
por 23.10.2014 / 20:11