У меня есть несколько папок dir_01
, dir_02
, dir_03
, которые я хочу сохранить в zip-файле, скажем, backup.zip
. Это должно быть сохранено в папке с сегодняшней датой. Мне нужно получить файл .bat, чтобы сделать работу; дополнительные сторонние исполняемые файлы запрещены.
Здесь Я нашел, как создать папку с сегодняшней датой, но у меня проблемы с передачей $destination
в -DestinationPath
. Я создал .bat, который вызывает PowerShell. Код, вызывающий у меня проблемы:
powershell.exe $destination = New-Item -Path 'C:\path\to\destionation' -ItemType Directory -Name ("$(Get-Date -f yyyy-MM-dd)")
powershell.exe -nologo -noprofile -command Compress-Archive -Path 'C:\path\dir_01', 'C:\path\dir_02', 'C:\path\dir_03' -DestinationPath $destination\backup.zip -Force
Сообщение об ошибке выглядит следующим образом:
New-Object : Exception calling ".ctor" with "2" argument(s): "Access to the path 'C:\backup.zip' is denied."
At
C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\Microsoft.PowerShell.Archive\Microsoft.PowerShell.Archive.psm1:729
char:30
+ ... ileStream = New-Object -TypeName System.IO.FileStream -ArgumentList $ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [New-Object], MethodInvocationException
+ FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand
Однако код работает, если я жестко запрограммировал путь к месту назначения, например:
powershell.exe -nologo -noprofile -command Compress-Archive -Path 'C:\path\dir_01', 'C:\path\dir_02', 'C:\path\dir_03' -DestinationPath 'C:\whole\path\backup.zip' -Force
Но при этом я не могу сохранить backup.zip
в сегодняшней папке.
Вопрос: Как сохранить backup.zip
в папке, которую я создал с сегодняшней датой?