Кто-нибудь знает, как сделать пакетный файл или сценарий или другую простую вещь, такую как ярлык, который вызывает какой-то exe для выполнения следующих действий:

Я хочу нажать на что-нибудь (командный файл, скрипт или ярлык), которое удалит последний файл в указанной папке ... только последний (самый последний) файл.

Зачем мне это делать?

Иногда я случайно делаю "неправильный" скриншот. Я хотел бы иметь возможность быстро удалить его.

2 ответа2

4

Пакетный файл:

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

Командная строка (без пакетного сценария), которая может быть включена непосредственно в ярлык.

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

Использование PowerShell:

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

Или вызов PowerShell из пакетного скрипта:

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

В качестве защиты от случайного вызова его более одного раза (если вы не делаете скриншоты слишком часто), вы можете ограничить возраст удаленного файла, например, до 10 минут, добавив это перед | del :

| where {$_.LastWriteTime -gt (get-date).AddMinutes(-10)}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .