如何从Windows命令行一次运行多个命令?在*nix环境中我可以做到:
export VAR=foo; echo $VAR
Run Code Online (Sandbox Code Playgroud)
我能找到的最接近的方式是:
set VAR=foo & echo %VAR%
Run Code Online (Sandbox Code Playgroud)
但是当我"回声"时,没有设置VAR.我需要在同一个进程下执行所有命令
我正在尝试在Spring 3.1中配置apache tiles 2.2.2 EL支持.
根据tile文档以及我在google上发现的内容,这应该可以工作,但它确实没有,相反,它会抛出NullPointerException
瓷砖配置:
<bean class="org.springframework.web.servlet.view.tiles2.TilesViewResolver">
<property name="order" value="1"/>
</bean>
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/views/**/views-def.xml</value>
</list>
</property>
<property name="tilesProperties">
<props>
<prop key="org.apache.tiles.evaluator.AttributeEvaluator">
org.apache.tiles.el.ELAttributeEvaluator
</prop>
</props>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
简单的瓷砖定义:
<tiles-definitions>
<definition name="temp.test" template="/WEB-INF/views/temp/test.jsp">
<put-attribute name="test" expression="${test}" />
</definition>
</tiles-definitions>
Run Code Online (Sandbox Code Playgroud)
test.jsp的
<%--Works fine--%>
<h2>Called in jsp</h2>
<p>
<c:out value="${test}"/>
</p>
<%-- throws NullPointerException --%>
<h2>Inserted from tiles</h2>
<p>
<tiles:getAsString name="test"/>
</p>
Run Code Online (Sandbox Code Playgroud)
cp上的Tiles库:
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-api</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-core</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>2.2.2</version>
</dependency> …Run Code Online (Sandbox Code Playgroud) 以下是一个试图动态加载变量的简单剧本:
site.yml
---
- hosts: localhost
vars_files:
- "{{ name }}.yml"
tasks:
- debug: var={{ foo }}
Run Code Online (Sandbox Code Playgroud)
变量foo在此文件中定义:
vars/myvars.yml
---
foo: "Hello"
Run Code Online (Sandbox Code Playgroud)
然后playbook就像这样运行:
ansible-playbook test.yml -e "name=myvars"
Run Code Online (Sandbox Code Playgroud)
但是,这会导致此错误:
ERROR! vars file {{ name }}.yml was not found
根据我从几个代码片段中理解的情况,这应该是可能的,并从myvars.yml导入变量.当尝试使用ansible 1.7.x时,它似乎确实有效(尽管我遇到了另一个问题,文件名vas正确解析).
这种行为是否已更改(可能已删除对动态变量文件的支持?).有没有不同的方法来实现这种行为(我可以使用include_vars任务,但它不是很合适)?
编辑:为了确保我的playbook结构是正确的,这里是一个github存储库:https://github.com/jcechace/ansible_sinppets/tree/master/dynamic_vars
也许是由于我对有保证和Hamcrest匹配器的经验不足,我还没有设法弄清楚如何正确地做这个断言
when().
get(url).
then().
header("my-header", lessThanOrEqualTo("60")); // should compare Integers not Strings
Run Code Online (Sandbox Code Playgroud)
一个明显的解决方案是从头中提取值,将其转换为Integer,然后手动执行断言.然而,这将破坏与放心工作的美丽.有没有办法在没有膨胀测试的情况下进行正确的比较?
我需要从CYGWIN内部调用批处理文件,但其中一个参数是包含分号的类似路径的字符串.通常在Windows命令行中,可以将该参数括在引号中(稍后需要对其进行修剪).然而,这种方法并不适用于cygwin
批量示例(回显前3个参数)
echo %1
echo %2
echo %3
Run Code Online (Sandbox Code Playgroud)
Windows cmd调用
file.bat "a;b" c
Run Code Online (Sandbox Code Playgroud)
输出继电器
"a;b"
c
empty
Run Code Online (Sandbox Code Playgroud)
Cygwin打电话
./file.bat "a;b" c
Run Code Online (Sandbox Code Playgroud)
产量
a
b
c
Run Code Online (Sandbox Code Playgroud) batch-file ×2
windows ×2
ansible ×1
apache-tiles ×1
cmd ×1
cygwin ×1
java ×1
rest ×1
rest-assured ×1
spring-mvc ×1
testing ×1