forfiles.exe não está funcionando para c: \ users \ internet \ downloads ou documentos

0

Estou ficando não conseguiu encontrar c: \ users \ internet \ downloads \ new.txt quando eu executar o script em cmd

é porque há um ícone de cadeado na conta de usuário no windows7, o script funciona bem se eu mudar o local para a pasta c: \ test

forfiles.exe / P "C: \ usuários \ Internet" / S / M . / D -7 / C "cmd.exe / c del / Q" "@path" "

O que eu preciso fazer é apagar os arquivos a cada 7 dias em minha pasta de documentos e downloads, em uma conta de biblioteca genérica usada por todos no trabalho, é uma conta de convidado do Windows 7.

    
por hirogen 15.11.2013 / 11:21

1 resposta

0

Ok. Portanto, não é a Guest -account, mas Local account .

Primeiro, algumas pequenas coisas que notei no seu roteiro.

  • Se você for excluir tudo com mais de 7 dias em todo o perfil (como seu script está fazendo), você terá problemas. Você também excluirá muitos arquivos em appdata , "configurações do programa", etc ... Você não quer isso porque esses programas podem se tornar inutilizáveis. O padrão é que você não vê esses arquivos / diretórios, mas se você usar o prompt de comando, eles estarão lá. (Tente configurar o explorador para exibir arquivos ocultos ou digitar C:\Users\Internet\appdata na barra de endereço)
  • Ainda não recebo nada com /M . . Eu preciso usar /M *.* ou omiti-lo completamente. (o padrão é /M * )
  • Se você estiver executando isso como você mesmo (e não como "internet"), não terá permissão suficiente para excluí-los. (Daí o ícone de cadeado no arquivo) Você precisa apropriar-se dos arquivos antes de poder excluí-los. Você poderia tentar executar o script como administrador, mas não tenho certeza se isso ajuda.

Existem várias maneiras de resolver esse problema. Abaixo eu menciono outra abordagem sobre como redefinir a conta inteira. Mas aqui está um script que exclui arquivos com mais de 7 dias.

Ele altera o diretório atual para C:\Users\Internet (o popd o altera). Em seguida, ele percorre um determinado conjunto de diretórios dos quais você deseja excluir arquivos. Você vê que eu não especifiquei o whole appdata -dir mas incluí o AppData\Local\Temp e Temporary Internet Files . Adicione seu próprio se você assim desejar. Ele assumirá a propriedade (para você) em todos os arquivos e diretórios especificados. Em seguida, ele fornecerá Everyone de direitos para esses arquivos (para que ele não seja interrompido com seus programas). Depois disso, apenas os arquivos com mais de 7 dias serão excluídos. Você precisa especificar del /a para incluir a exclusão de arquivos ocultos.

(adicionei algumas verificações na parte superior do arquivo em lote para ter certeza de que você está no diretório correto. Você realmente não quer fazer isso em outro diretório acidentalmente;;)

@echo off
PUSHD C:\Users\Internet
IF /I "%cd%"=="C:\Users\Internet" GOTO OK
ECHO Oops, CD didn't work. You really don't want to do this in another directory !!!
POPD
EXIT/b
:OK
SET "dirs=AppData\Local\Temp:Contacts:Desktop;Documents:Downloads:Favorites:Links:Music:Pictures:Videos:AppData\Local\Microsoft\Windows\Temporary Internet Files"
FOR %%d IN ("%dirs::=" "%") DO (
  TAKEOWN /R /D Y /F %%d
  ICACLS %%d /T /GRANT Everyone:F
  FORFILES /P %%d /S /D -7 /C "cmd /c del /q /a "@path""
)
POPD

Isso não excluirá "configurações de programa", mas também deixará outros diretórios temporários (exceto AppData \ Local \ Temp) sozinhos. Portanto, se você tiver outros diretórios, poderá incluí-los na set -line.

Outra abordagem seria redefinir toda a conta do usuário. Você poderia fazer

net user internet /delete
net user internet /add
rd c:\users\internet /s/q

Você precisa fazer isso como administrador. Mas desta forma todas as configurações o usuário se perde. Não só mais velho que 7 dias. Isso vai limpar tudo. Não tenho certeza se isso é desejado. No entanto, é o "mais limpo". Se for um computador público, você poderá fazer isso todos os dias (ou todos os dias). Você também pode fazer backup do perfil e restaurá-lo, mas isso também exclui os arquivos mais novos e redefine a conta para um momento / estado específico.

Por que apenas arquivos com mais de 7 dias devem ser excluídos? Se você realmente deseja obter arquivos com menos de 7 dias, precisa do primeiro script.

    
por 15.11.2013 / 17:13