如何在Winrar窗口浏览器中编辑.bat文件?

时间:2016-03-11 13:45:57

标签: winrar

Winrar是否有另一种直接在资源管理器中编辑bat文件的方法?

我点击一个zip文件,它会显示一个包含许多文件的Winrar弹出窗口,双击一些文件在默认程序中打开它(Notepad ++中的.txt,Toad中的.sql等),但是点击蝙蝠文件运行蝙蝠。 Alt + v是查看文件的快捷方式,但它不允许我编辑bat文件。

唯一的方法是将文件拖到Windows,编辑并拖回Windows。

2 个答案:

答案 0 :(得分:2)

WinRAR 具有暂时将双击文件提取到临时文件的文件夹的功能,如设置中路径中所定义从菜单选项打开,然后启动与该文件关联的应用程序,并在启动应用程序终止后,将文件重新打包,如果完全修改回存档。

对于可执行文件也是如此,但在菜单中打开的设置中启用了选项要从提取中排除的文件类型选项卡安全性 选项,默认情况下提取 设置查看器 解压缩所有内容下定义的整个存档。

但是,可以在设置的标签查看器上自定义双击时的默认行为。选择询问而不是内部查看器选择查看器类型并输入C:\Windows\Notepad.exe作为外部查看器名称双击存档内的* .bat文件会提示用户使用内部或外部查看器查看或使用关联的程序打开文件。当然*.bat不应该在解压缩所有内容的设置列表中。

现在点击按钮外部查看器(Notepad.exe),批处理文件被解压缩到文件夹中的临时文件,然后记事本是从该文件开始查看和编辑。完成查看/编辑批处理文件并退出记事本后, WinRAR 会检测到修改并询问用户是否应在存档中更新修改后的文件。

每个设置对话框中都有帮助按钮。请使用它并阅读 WinRAR 的帮助。

如果要编辑存档文件中的同一个批处理文件,我建议使用批处理文件尽可能自动执行此任务。

@echo off
setlocal
set "FileToEdit=Test.bat"
set "PathInArchive="
set "DefaultArchive=C:\Temp\Test.zip"

rem Set a title for the command prompt window and determine name
rem of this batch file with full path for a possible error message.
title Update %FileToEdit%
set "BatchFile=%~f0"

rem Use a standard archive file if none is specified as first parameter.
if "%~1"=="" (
    set "ArchiveFile=%DefaultArchive%"
) else (
    set "ArchiveFile=%~f1"
)

rem Test if the archive file exists at all.
if not exist "%ArchiveFile%" (
    call :ErrorMessage "Archive file %ArchiveFile% does not exist."
    exit /B
)

rem Make sure path in archive ends with a backslash
rem if a path to file in archive is defined at all.
if not "%PathInArchive%" == "" (
    if not "%PathInArchive:~-1%" == "\" (
        set "PathInArchive=%PathInArchive%\"
    )
)

rem Extract the file to edit to directory for temporary files.
"%ProgramFiles%\WinRAR\WinRAR.exe" e -cfg- -ibck -y -- "%ArchiveFile%" "%PathInArchive%%FileToEdit%" "%TEMP%\"
if errorlevel 1 (
    call :ErrorMessage "Failed to extract file %PathInArchive%%FileToEdit%"
    exit /B
)

rem Start Windows Notepad to edit the temporary extracted file.
start "" /wait %windir%\Notepad.exe "%TEMP%\%FileToEdit%"

rem Define the option -ap with path in archive if needed at all.
set "ArchivePath="
if not "%PathInArchive%" == "" set "ArchivePath=-ap"%PathInArchive%""

rem Update the edited file in archive and delete it on success.
"%ProgramFiles%\WinRAR\WinRAR.exe" u %ArchivePath% -cfg- -df -ibck -ep -y -- "%ArchiveFile%" "%TEMP%\%FileToEdit%"
if errorlevel 1 (
    del "%TEMP%\%FileToEdit%" 2>nul
    call :ErrorMessage "Failed to update file %PathInArchive%%FileToEdit%"
    exit /B
)

rem Exit batch processing.
exit /B

rem Subroutine to output an error message.
:ErrorMessage
echo Error detected by:  %BatchFile%
echo On processing file: %ArchiveFile%
echo.
echo Error: %~1
echo.
endlocal
pause
exit /B

应该适当地定义分配给批处理文件顶部的变量FileToEditPathInArchiveDefaultArchive的值。

通过使用合适的名称在文件夹%USERPROFILE% SendTo 子文件夹中为此批处理文件创建快捷方式(* .lnk),右键单击包含要修改的批处理文件的存档文件在存档中使用固定名称和路径,并在此快捷方式中单击子菜单发送到,导致将批处理文件解压缩到临时文件的文件夹,打开Windows 记事本进行编辑和重新打包后最后将修改后的批处理文件放入存档文件中。

WinRAR 中的帮助菜单中打开帮助主题,然后点击项目命令中的目录标签行模式。此内容列表项下的帮助页面解释了使用过的命令 eu以及使用过的开关

要了解使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。

  • call /?
  • del /?
  • echo /?
  • endlocal /?
  • exit /?
  • if /?
  • pause /?
  • rem /?
  • set /?
  • setlocal /?
  • start /?
  • title /?

答案 1 :(得分:1)

  1. 从WinRAR中,点击选项 - > 设置 - > 查看器

  2. 激活询问“进入查看器类型

  3. 外部查看器名称中粘贴%WINDIR%\notepad.exe或您喜欢的编辑器的路径。

  4. 点击确定。完成。

  5. 现在,当您双击存档中的任何非exe文件时,弹出窗口可让您选择如何打开它:

    • 内部

    • 外部(通过记事本或编辑)

    • 相关计划