解压缩SFX WinRAR文件后,批处理脚本不在临时文件夹中运行

时间:2017-01-03 14:42:39

标签: batch-file winrar sfx temporary-directory

我有一个程序,带有32位和64位的单独设置。我的目标是创建一个可以运行适当设置的可执行文件。所以我创建了一个文件夹并将两个设置放在里面,然后编写了以下脚本:

@echo off

if %PROCESSOR_ARCHITECTURE%==AMD64 goto :x64
if %PROCESSOR_ARCHITEW6432%==AMD64 goto :x64

:x86
    "%cd%"\setup.exe
    exit

:x64
    "%cd%"\setup-x64.exe
    exit

之后,我在WinRAR中使用此文件夹创建了SFX文件,指向BAT文件。但是当我运行它时,命令行窗口会弹出并立即关闭,没有任何反应。我转到临时文件夹并双击BAT文件并开始安装。原始文件夹中也是如此。发生了什么,我该如何解决?谢谢!

1 个答案:

答案 0 :(得分:2)

decodef = lambda x: x.decode("utf-8") if x != '' else " " arr = np.genfromtxt("text", delimiter="\t", dtype="U1, i4, f8",converters={0: decodef}) 引用批处理文件的调用目录。

例如,批处理文件位于%cd%

%USERPROFILE%\Desktop\Folder\bat.bat

然后从命令行开始,例如:

  

echo %cd% pause

它应该回显C:\>%USERPROFILE%\Desktop\Folder\bat.bat,因为这是你从中调用的地方。

从评论中解决问题的两种方式:

使用C:\ - >推送批处理文件的目录将导致pushd "%~dp0"

的变量值发生变化

请勿使用%cd%"%cd%"

两种方式都使用批处理文件的第0个参数是其路径的事实。

如果您正在从命令提示符本身调试文件,则可以阻止命令行窗口关闭。有了这个,你应该看到一个类似"%~dp0"的错误。之后,没有必要从批处理文件中完成任何操作,因此它已关闭。