Tenho certeza de que isso foi solicitado um milhão de vezes, mas não consigo entender por que não consigo executar este comando simples no PowerShell:
PS> new-item -path c:\users\me\desktop\testfolder -name (get-date).txt -value (get-date).toString() -itemtype file
Estou sempre recebendo o seguinte erro:
New-Item : Access to the path 'C:\Users\Me\desktop\testfolder' is denied.
... PermissionDenied: ... UnauthorizedAccessException
... FullyQualifiedErrorId: NewItemUnauthorizedAccessError,Microsoft.PowerShell...
De qualquer forma,
Eu tentei TODOS os seguintes, sem sucesso:
- Executando PowerShell como Administrador (ou seja, "Executar como Administrador")
- Set-ExecutionPolicy RemoteSigned
- "takeown" na pasta
- definindo as configurações de segurança na pasta para: "todos> controle total"
- -FORÇA
Onde diabos eu deveria procurar uma resposta a seguir? Eu sou um administrador na minha máquina local. É extremamente frustrante não ter direitos para fazer algo tão simples quanto criar um arquivo de texto estúpido ...
Puxando cabelo ...
Respostas:
O formato da string DateTime retornado por
Get-Date
contém caracteres que não podem ser usados para nomes de arquivos. Tente algo como isto:Apenas altere a string de formato para atender às suas necessidades.
fonte
A questão é que
-name (get-date).txt
não é o mesmo que(get-date) + ".txt"
. O primeiro tentará ler uma propriedade denominada "txt" noSystem.DateTime
objeto retornado e o último anexará a string ".txt" a uma representação de string da data. No primeiro, .txt como uma propriedade retorna$null
porque ela não existe. Por sua vez, isso significa que você está tentando executar efetivamente, onew-item -path .\desktop\folder
que retorna acesso negado porque a pasta já existe.fonte