我有一个PowerShell脚本,我用它来创建从几个地方复制编译文件并使用winrar压缩它们的发行版.在脚本中,我切换到包含我要运行的文件夹的目录并执行此操作:
Invoke-Expression ($WinRAR + " a " + $zipPath + " " + $WinRARFilter + " " + $DistName + "-zip " + $WinRAROpts)
Run Code Online (Sandbox Code Playgroud)
实际执行此操作:
E:\Progs\WinRar\WinRar.exe a C:\Users\Echilon\Documents\Coding\ResourceBlender-Express\trunk\dist\resourceblender-express_1.44-zip.zip -x*\.svn\* -x*\.svn -x\.svn resourceblender-express-zip -r -s -m5 -inul
Run Code Online (Sandbox Code Playgroud)
但是没有.svn目录从zip文件中排除.这曾经工作,我不知道为什么现在没有,但我不能让它排除正确的文件.
完整脚本位于http://resourceblender.codeplex.com/sourcecontrol/changeset/view/27742?projectName=resourceblender#456701(位于脚本底部)的codeplex上
那些有一些PowerShell经验的人能否对此有所了解?
我正在尝试将ISO提取到一个名称相同但没有.iso的文件夹.
我遇到了winrar的问题,因为当我从带有ISO的文件夹开始搜索时,它不会启动提取.
更新了答案代码
private void ExtractISO(string toExtract, string folderName)
{
// reads the ISO
CDReader Reader = new CDReader(File.Open(toExtract, FileMode.Open), true);
// passes the root directory the folder name and the folder to extract
ExtractDirectory(Reader.Root, folderName /*+ Path.GetFileNameWithoutExtension(toExtract)*/ + "\\", "");
// clears reader and frees memory
Reader.Dispose();
}
private void ExtractDirectory(DiscDirectoryInfo Dinfo, string RootPath, string PathinISO)
{
if (!string.IsNullOrWhiteSpace(PathinISO))
{
PathinISO += "\\" + Dinfo.Name;
}
RootPath += "\\" + Dinfo.Name;
AppendDirectory(RootPath);
foreach (DiscDirectoryInfo dinfo in Dinfo.GetDirectories())
{
ExtractDirectory(dinfo, …
Run Code Online (Sandbox Code Playgroud) 假设我有一个类似的目录结构
C:\Users\Desktop\abc\d
Run Code Online (Sandbox Code Playgroud)
我想rar归档abc文件夹,以便rar的结构是:
abc\d
Run Code Online (Sandbox Code Playgroud)
当我尝试使用powershell进行存档时,winrar会复制存档中的完整路径,例如:
\Users\Desktop\abc\d
Run Code Online (Sandbox Code Playgroud)
我不希望在存档中创建完整路径以下是脚本:https: //gist.github.com/saurabhwahile/50f1091fb29c2bb327b7
我究竟做错了什么?
我想解压缩在主文件夹中的一些子文件夹中的所有文件,在解压缩后删除xxx.rar文件并将包含文件的文件夹移动到另一个位置.
这个我的批处理脚本到目前为止工作.
SET "sourcefolder=C:\Users\Unpack"
FOR /R %sourcefolder% %%X in (*.rar) do (
pushd "%%~dpX"
"C:\Program Files\WinRAR\Rar.exe" x -y "%%X" "*.*" && del "*.rar"
popd
)
for /d /r %sourcefolder% %%x in (*) do move "%%x" "C:\Users\New-Location")
Run Code Online (Sandbox Code Playgroud)
但是我想要将其文件解压缩的每个子文件夹立即移动到"New-Location"文件夹,而不仅仅是在主文件夹中解压缩所有内容之后.
我需要在代码中改变一些想法吗?
我正在使用 matlab 并调用 CMD 来运行 winrar 以提取文件。我想在静默模式下进行提取过程 - 意味着看不到进度报告的弹出窗口(附图片)。有任何想法吗?
我尝试使用 -s 或 /s 开关,但没有帮助
谢谢
尝试在Windows资源管理器中打开PHP创建的.zip文件时,我遇到了一个奇怪的错误.
它在WinRar中工作正常.
我正在创建的是一个SDS工作表下载站点,您可以在其中复选所需的PDF文档类型然后压缩它们.
该过程工作正常,我没有文件创建错误.它只有在使用Windows资源管理器打开时才会发生错误.
错误消息:"Windows无法打开该文件夹.压缩(压缩)文件夹'文件名'无效." 在Windows资源管理器中打开错误."
如果您想自己测试一下,该网站是http://www.premiere-produkter.no/pp/datablad/index.php.
下面是代码:
<?php
$error = ""; //error holder
if(isset($_POST['createpdf'])){
$post = $_POST;
$file_folder = "files/"; // folder to load files
if(extension_loaded('zip')){ // Checking ZIP extension is available
if(isset($post['files']) and count($post['files']) > 0){ // Checking files are selected
$zip = new ZipArchive(); // Load zip library
$zip_name = time().".zip"; // Zip name
if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE){ // Opening zip file to load files
$error .= "* Sorry ZIP creation failed at this time<br/>";
} …
Run Code Online (Sandbox Code Playgroud) 我是批处理文件编码的新手,需要你的帮助.
我有这些目录:
c:\rar\temp1\xy.jpg
c:\rar\temp1\sd.jpg
c:\rar\temp1\dd.jpg
c:\rar\temp2\ss.jpg
c:\rar\temp2\aa.jpg
c:\rar\temp2\sd.jpg
c:\rar\temp3\pp.jpg
c:\rar\temp3\ll.jpg
c:\rar\temp3\kk.jpg
Run Code Online (Sandbox Code Playgroud)
我想把它们压缩到这个
c:\rar\temp1\temp1.rar
c:\rar\temp2\temp2.rar
c:\rar\temp3\temp3.rar
Run Code Online (Sandbox Code Playgroud)
如何使用WinRAR完成此操作?
所以我需要让 SFX 解压到该位置,然后从它刚刚解压到的文件夹中自动启动 bat 文件。
希望有人能帮忙。
谢谢,汤姆
我的文件夹中D:\data
包含许多子文件夹和文件,并且我想将此文件夹与批处理文件一起存档到指定目录,并在存档文件名中添加当前日期,例如F:\11.08.2016_data
。
到目前为止,我的命令行是:
"C:\Program Files\WinRAR\rar.exe" a -ep1 -r "data" "D:\data"
Run Code Online (Sandbox Code Playgroud)
此命令行在文件data.rar
夹中创建RAR存档文件My Documents
。
如何添加日期和更改归档目录?
我有一条快速路线,可以上传文件,并通过formData
.
假设文件是一个.rar
文件,我的目标是提取此存档或其子文件夹中的所有文件名。
这是我的快递路线目前的样子:
module.exports = async (req, res) => {
try {
const busboy = new Busboy({ headers: req.headers })
busboy.on('finish', async () => {
const fileData = req.files.file
console.log(fileData)
// upload file
// send back response
})
req.pipe(busboy)
} catch (err) { return response.error(req, res, err, 'uploadProductFile_unexpected') }
}
Run Code Online (Sandbox Code Playgroud)
这是console.log(fileData)
外观:
{
data:
<Buffer 52 61 72 21 1a 07 01 00 56 0c 22 93 0c 01 05 08 00 07 01 01 …
Run Code Online (Sandbox Code Playgroud)