[英]Can't extract a zip file with jar -xf even after granting full permissions using icacls
首先,我不得不让icalcs向文件夹中的每个人授予完全权限,因为我不知道我应该写“ Tout le monde”而不是“ Everyone”,因为我的Windows 7语言是法语,实际上我需要此命令为此,我可以在相同权限更改的文件夹中解压缩zip文件。
我的批处理文件的代码如下:
call xcopy glassfish-4.1.zip C:\Users\Feki\Desktop\vvv2
icacls C:\Users\Feki\Desktop\vvv2 /grant "Tout le monde":f
call C:\Program Files\Java\jdk1.7.0_40\bin>jar xf C:\Users\Feki\Desktop\vvv2\glassfish-4.1.zip
ECHO.
ECHO Press any key to exit.
pause>null
日志表明icalcs成功,但是当提取开始时,我收到一条“拒绝访问”消息
----编辑----
我试图确保我对zip文件具有提取的所有权限,所以我添加了
icacls C:\Users\Feki\Desktop\vvv2\* /grant "Tout le monde":f
在第一个icacls之后,但是提取仍然无法进行
首先,我想说的是,我认为您的脚本看起来有点怪异。
在第一行
call xcopy glassfish-4.1.zip C:\Users\Feki\Desktop\vvv2
您要将zip文件复制到桌面上的文件夹中,这已经需要C:\\Users\\Feki\\Desktop\\vvv2
写访问权限,否则将无法使用。
在下一行中,您尝试设置此文件夹的访问权限:
icacls C:\Users\Feki\Desktop\vvv2 /grant "Tout le monde":f
如前所述,这没有多大意义,因为您已经将zip文件写入了此文件夹,因此您至少必须具有写访问权限。
现在解决问题,调用:
call C:\Program Files\Java\jdk1.7.0_40\bin>jar xf C:\Users\Feki\Desktop\vvv2\glassfish-4.1.zip
是绝对不应该起作用的,因为程序和文件之间有一定的空间。 我不知道bin>jar
应该是什么,但是如果这个对您有用,那么您可以通过这种方式使用它。
我会这样写:
call "%ProgramFiles%\Java\jdk1.7.0_40\bin\jar.exe" xf C:\Users\Feki\Desktop\vvv2\glassfish-4.1.zip
如果此呼叫给您Access denied.
消息,那么您可能在命令行的当前路径中没有写访问权。
请注意, jar
实用程序会将zip文件的内容提取到命令行的当前路径。 这意味着如果您在c:\\
则它将内容提取到c:\\
;如果您在c:\\bla\\
则它将内容提取到c:\\bla\\
。 (如果您使用完整路径调用它,或者仅当它位于PATH变量中时才使用jar
,则没有什么区别。)
因此,这似乎使您在glassfish-4.1.zip所在的路径中没有正确的访问权限,因为这是命令行的当前路径。 我猜您想将内容提取到桌面上的文件夹中。 为此,只需在发出提取调用之前将当前路径更改为此文件夹。
我猜脚本可能看起来像这样:
call xcopy glassfish-4.1.zip C:\Users\Feki\Desktop\vvv2
cd C:\Users\Feki\Desktop\vvv2\
call "%ProgramFiles%\Java\jdk1.7.0_40\bin\jar.exe" xf glassfish-4.1.zip
也可以看看:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.