我有一个Powershell脚本应该在指定的位置压缩指定的目录,看起来好像WinRAR运行并执行某种操作,但是我似乎无法找到zip文件在文件系统中的最终位置
我的想法是,我将压缩目录,然后从文件系统中删除解压缩的目录。
$ filePath变量是要压缩的目录的位置(包括基本位置),$ rarExePath是WinRAR.exe的路径
# zips up any files in the directory
function ZipDirectory($filePath, $rarExePath)
{
"Zipping directory $filePath"
#$zipFilePath = (Split-Path $filePath -Parent)
$archiveName = (Split-Path $filePath -Leaf) + ".rar"
"Zipping directory $dirPath to file $archiveName $zipFilePath"
Start-Process $rarExePath -ArgumentList "a -r $archiveName $filePath"
#Remove-Item -Recurse $filePath
"Completed..."
}
我的命令有什么明显错误吗?
答案 0 :(得分:2)
通过添加:
,找出脚本运行时您所在的目录resolve-path .
到你的剧本。
WinRAR很可能只是将文件放入当前目录,你不知道那是什么。
我要更改$archiveName
变量,以便在我想要创建文件的位置添加显式路径:
PS C:\Users\pax> $x = 'c:\desired\' + (split-path "c:\a\b\xyzzy" -leaf)
PS C:\Users\pax> $x
C:\desired\xyzzy