我有一个程序,带有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文件并开始安装。原始文件夹中也是如此。发生了什么,我该如何解决?谢谢!
答案 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"
的错误。之后,没有必要从批处理文件中完成任何操作,因此它已关闭。