Powershell命令行Winrar不在预期位置创建文件

时间:2015-02-05 05:01:37

标签: powershell command-line zip winrar

我有一个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..."
}

我的命令有什么明显错误吗?

1 个答案:

答案 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