相关疑难解决方法(0)

使用"EXIT/BX"退出批次,其中X> = 1,就像使用&&或||时命令成功完成一样 批量调用之间的运算符

我正在尝试使用该EXIT /B X命令链接一系列.bat文件以返回成功或失败,&&以及||有条件地运行下一个.bat(例如a.bat && b.bat).

无论我是打电话EXIT /B 0还是其他任何结束a.bat,a.bat && b.bat都会在之后拨打b.bat.我的理解是EXIT /B 0应该设定ERRORLEVEL=0,这是成功,所以&&应该继续.与此相对应的是,调用EXIT /B 1应该设置ERRORLEVEL=1哪个失败,所以&&应该停止.我在这里错过了什么?

琐碎的例子:

对于非批处理命令,按预期执行:

C:\> echo test|findstr test>NUL && echo yes
yes

C:\> echo test|findstr test>NUL || echo yes

C:\> echo test|findstr nope>NUL && echo yes

C:\> echo test|findstr nope>NUL || echo yes
yes
Run Code Online (Sandbox Code Playgroud)

使用EXIT /B始终将a.bat视为成功:

C:\> echo @EXIT /B 0 > …
Run Code Online (Sandbox Code Playgroud)

windows cmd batch-file exit errorlevel

18
推荐指数
2
解决办法
2万
查看次数

便携式makefile创建目录

我希望通过制作一个相当通用的makefile来为自己节省一些精力,这个makefile将为我提供相对简单的C++项目,只需对makefile进行最少的修改.

到目前为止,我已经得到它所以它将使用.cpp同一目录中的所有文件和指定的子目录,将所有这些放在子目录中的匹配结构中obj,并将生成的文件放在另一个名为的子目录中bin.几乎是我想要的.

但是,尝试获取它以便创建所需的obj和bin目录(如果它们不存在)提供了跨平台工作的尴尬 - 具体来说,我只是测试Windows 7和Ubuntu(不记得版本),我无法让它同时在两者上工作.

窗户误读mkdir -p dir并创建一个-p目录,显然这两个平台使用\,并/分别为路径分隔符-并且使用了错误的一个,当我得到的错误.

以下是makefile的一些相关部分:

# Manually edited directories (in this example with forward slashes)
SRC_DIR = src src/subdir1 src/subdir2

# Automagic object directories + the "fixed" bin directory
OBJ_DIR = obj $(addprefix obj/,$(SRC_DIR))
BIN_DIR = bin

# Example build target
debug: checkdirs $(BIN)

# At actual directory creation
checkdirs: $(BIN_DIR) $(OBJ_DIR)
$(BIN_DIR):
    @mkdir $@

$(OBJ_DIR):
    @mkdir -p $@
Run Code Online (Sandbox Code Playgroud)

在过去一周左右我已经阅读了这些内容(主要是关于Stack Overflow),所以如果碰巧是我正在关注一些可怕的不良做法或任何这种性质,请告诉我. …

portability cross-platform makefile

3
推荐指数
2
解决办法
5155
查看次数