Como renomear um arquivo com a data atual no menu de contexto do Explorer?

0

Eu quero ser capaz de renomear qualquer arquivo ou pasta com a data atual, então eu adicionei o seguinte valor de chave para o registro, para obter essa opção para aparecer no menu de contexto do botão direito do mouse:

HKEY_CLASSES_ROOT\*\shell

Cmd.exe /c ren %1 "sample".*

No entanto, não consegui encontrar como realizar isso com a data atual. Alguém pode ajudar?

Mgnfcnt
fonte
Quer dizer que você não sabe como recuperar a data atual? Se assim for, então o comando para fazer isso no Windows é date /t
Indrek
Cmd.exe / c ren% 1 date / t ou date. * Estes não estão funcionando
Mgnfcnt

Respostas:

0

Para obter a data atual no prompt de comando do Windows, use o seguinte:

date /t

Para renomear um arquivo com a data atual, você precisará usar o for construir para capturar a saída do date comando e passá-lo para ren:

for /f "useback delims=" %x in (`date /t`) do ren oldfile.foo %x

Note, no entanto, que a saída de date pode, dependendo das suas configurações regionais, conter símbolos que não podem ser usados ​​em um nome de arquivo, por exemplo, a barra ( / ). Se sim, você tem duas opções:

  • Formate a data de forma que ela seja adequada para uso em um nome de arquivo; Vejo este post no Stack Overflow .

  • Use o PowerShell no lugar. O seguinte deve fazer o truque:

    Rename-Item oldfile.foo (Get-Date -Format yyyy-MM-dd)
    

    Esse exemplo usa o formato de data ISO. Vejo Formatando Datas e Horários Para maiores informações.


Para adicionar uma nova entrada ao menu de contexto a todos os arquivos, faça o seguinte:

  1. Abra o regedit.exe e navegue para HKEY_CLASSES_ROOT \ * \ shell

  2. Adicione uma nova chave e defina seu nome para o que você quiser que o item de menu seja chamado

  3. Adicione uma nova chave sob isso, com o nome comando

  4. Clique duas vezes no (Padrão) valor sob o comando key e defina seu valor da seguinte forma:

    • se estiver usando o prompt de comando regular (observe os sinais de porcentagem dupla):

      cmd /c for /f "useback delims=" %%x in (`date /t`) do ren "%1" %%x
      
    • se estiver usando o PowerShell:

      cmd /c powershell Rename-Item "%1" (Get-Date -Format yyyy-MM-dd)
      
Indrek
fonte
isto não está a funcionar. quando clicado, abre "ARQUIVO ABERTO COM"
Mgnfcnt
@Mgnfcnt Por favor, veja post atualizado. Eu testei as versões cmd.exe e PowerShell, e ambos funcionam bem.
Indrek
desculpe, mas nenhum deles está funcionando. Eu estou usando o Windows 7 X64
Mgnfcnt
Eu testei com o Windows 8.1. Parece que você não pode invocar o PowerShell diretamente no Windows 7, então eu alterei um pouco esse comando (adicionado cmd /c em frente). Depois disso, no entanto, ambos funcionaram muito bem para mim no Windows 7 também. Tem certeza de que está criando a chave do registro corretamente? Clique com o botão direito do mouse HKEY_CLASSES_ROOT \ * \ shell , selecione Exportar, salve-o em um arquivo e poste o conteúdo do arquivo (edite-o na sua pergunta ou use um site como pastebin.com).
Indrek