Я уверен, что об этом спрашивали миллион раз, но я не могу понять, почему я не могу запустить эту простую команду в powershell:
PS> new-item -path c:\users\me\desktop\testfolder -name (get-date).txt -value (get-date).toString() -itemtype file
Я навсегда получаю следующую ошибку:
New-Item : Access to the path 'C:\Users\Me\desktop\testfolder' is denied.
... PermissionDenied: ... UnauthorizedAccessException
... FullyQualifiedErrorId: NewItemUnauthorizedAccessError,Microsoft.PowerShell...
Тем не мение,
Я пробовал ВСЕ из следующего, но безрезультатно:
- Запуск powershell от имени администратора (т. Е. «Запуск от имени администратора»)
- Set-ExecutionPolicy RemoteSigned
- "забрать" в папке
- установка параметров безопасности в папке: «все> полный контроль»
- -Force
Где, черт возьми, я должен пойти на охоту за ответом дальше? Я администратор на моей локальной машине. Это очень расстраивает, если у вас нет прав на такую простую вещь, как создание глупого текстового файла ...
Выдергивание волос ...
Ответы:
Формат строки DateTime, возвращаемый функцией,
Get-Date
содержит символы, которые нельзя использовать для имен файлов. Попробуйте что-то вроде этого:Просто измените строку формата в соответствии с вашими потребностями.
источник
Проблема в том, что
-name (get-date).txt
это не то же самое, что(get-date) + ".txt"
. Первый попытается прочитать свойство с именем «txt» в возвращенномSystem.DateTime
объекте, а второй добавит строку «.txt» к строковому представлению даты. В первом случае .txt как свойство возвращается,$null
потому что его не существует. Это, в свою очередь, означает, что вы пытаетесь эффективно запустить,new-item -path .\desktop\folder
который возвращает отказано в доступе, поскольку папка уже существует.источник