- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
尝试设置一个简单的构建脚本,该脚本将根据其他环境变量扩展路径。这个小脚本运行良好:
echo off
call c:\vstudio\vc\bin\vcvars32.bat
set _ISGIT=1
echo current path is %PATH%
if defined _ISGIT set PATH=c:\git\bin;%PATH%
但是如果我想根据 _ISGIT 变量的存在执行多行,那么我认为这会起作用
echo off
call c:\vstudio\vc\bin\vcvars32.bat
set _ISGIT=1
echo current path is %PATH%
if defined _ISGIT (
set PATH=c:\git\bin;%PATH%
set PATH=c:\foo;%PATH%
)
但这会产生以下输出:
D:\>test.cmd
D:\>echo off
current path is C:\vstudio\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files (x86)\MSBuild\14.0\bin;C:\
vstudio\Common7\IDE\;C:\vstudio\VC\BIN;C:\vstudio\Common7\Tools;C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319;C:\vstudio
\VC\VCPackages;C:\Program Files (x86)\HTML Help Workshop;C:\vstudio\Team Tools\Performance Tools;C:\Program Files (x86)\
Windows Kits\10\bin\x86;C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\;C:\ProgramData\Oracl
e\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\U
sers\jselbie\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files (x86)\Windows Kits\10\Windows Performance To
olkit\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\nodejs\;C:\Program Files (x86)\Skype\Phone\;C:\WINDOWS\s
ystem32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Co
rporation\PhysX\Common;C:\Users\jselbie\.dnx\bin;C:\Users\jselbie\AppData\Roaming\npm;%USERPROFILE%\AppData\Local\Micros
oft\WindowsApps;
MSBuild\14.0\bin was unexpected at this time.
MSBuild\14.0\bin 出乎意料
可能是原始路径包含带空格的目录的副作用。带有 ()
的扩展命令中存在空格似乎会导致脚本失效。
如何在不必有独立的 if defined
语句的情况下解决这个问题?
最佳答案
有两点不对。首先,路径中的一个目录包含括号。变量扩展在解析之前执行,因此 PATH 的右括号被用作 IF block 的右括号。要解决此问题,您需要将您的分配放在引号中:set "PATH=..."
。
其次,在一个 block 内(用括号表示)整个 block 中的所有环境变量首先一次展开。然后解析该 block 。这意味着第二行中的扩展路径与第一行中的相同。它不会被第一行改变。要解决此问题,您应该在一行中完全更改路径:
if defined _ISGIT (
set "PATH=c:\foo;c:\git\bin;%PATH%"
)
或者使用延迟扩展:
setlocal enabledelayedexpansion
if defined _ISGIT (
set "PATH=c:\git\bin;!PATH!"
set "PATH=c:\foo;!PATH!"
)
Delayed expansion通过在稍后阶段扩展变量来工作,即在第一行分配变量之后。在使用之前必须使用 setlocal
命令启用它。
关于Windows 命令外壳 : if-then-else weirdness for block statements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42360991/
快速简单的问题: 如何制作多种颜色的开关/外壳。 我能做的是: if(color == Color.Red) color = Color.Green; else { if(color
我有这个 switch/case 结构: public void onClick(View arg0) { // TODO Auto-generated method stub swi
在我的程序中,我想使用不同的进程访问多个 linux shell。 目前我正在使用子进程我目前没有 linux 机器来测试它所以你能告诉我这是否有效。 子进程是否在一个终端上工作?如果是这样,还有其他
我在后面的代码中有三次与此示例非常相似的代码。每次开关关闭发送给它的选项。每个time case里面的代码除了一个参数是完全一样的基于案例。使用 switch/case 和方法是最好的方法去做这个?我
阅读 LTP shell code它使用奇怪的 for 循环语法: for arg; do TCID="${TCID}_$arg" done 它如何接受参数?我希望它循环遍历 $arg,用 $
这不是最有见地的问题,但我真的希望能够按 Control-L 并让 shell iex 清除屏幕。知道如何做到这一点,或者是否有另一个带有此内置功能的 Elixir shell ? 最佳答案 clea
我已经切换到 Enthought 的 Canopy 1.0.0,但我想念独立的 QT shell 和 QT notebook。我不想使用 IDE 中的内置 shell。我在哪里可以找到 QT shel
我在PyCharm中创建了新的flask项目,但看不到如何在集成的PyCharm python控制台窗口中运行flask shell。 启动控制台时未定义名称应用程序: 我仍然可以在集成的PyChar
尝试创建Prism shell 时,出现以下异常: An exception of type 'Microsoft.Practices.ServiceLocation.ActivationExcept
这个问题在这里已经有了答案: How to use the switch statement in R functions? (4 个回答) 4年前关闭。 我有一系列嵌套 if..else我想用 ca
cat < file.txt < file2.txt 我正在编写一个简单的 shell,我正在思考上面的表达式的含义。我很清楚这是什么意思:cat < file.txt,但双“<”让我困惑。 实现重定
我正在考虑使用 CompositeWPF ( http://www.codeplex.com/CompositeWPF ) - 又名 Prism,来构建我正在处理的应用程序。 该应用程序不是传统的 L
我有一个没有图形用户界面的操作类。该类主要是做数据管理。该类是从我的主 GUI 中的方法调用的。我遇到的问题是在出现故障时向用户显示消息。我正在使用 MessageDialog,但它在运行时一直失败。
我在教程中看到了两种在 BASH shell 中对 if 语句进行语法处理的方法: 除非我在变量周围加上引号并添加额外的 [ 和 ],否则这个不会工作: if [[ "$step" -eq 0 ]]
我的脚本接受键值对作为命令行参数。我测试给定数量的参数是否偶数。如果偶数,我想遍历数组,将 args[n] & args[n+1] 视为一对 (n = 0 to $# - 1) 并执行另一个将这两个作
全部!我的 CKEditor 有问题!我需要用 div 将 ul、ol 列表括起来。因此,当我按下面板上的列表按钮时,我会得到这样的结果: 最佳答
我在更改我的 Android 外壳中的所有者时遇到了一些问题。我正在尝试更改文件的所有者和组以匹配目录中的另一个文件。当我 ls -l 其他文件拥有 u0_a49 的所有者时,我尝试 su chown
平台:RHEL7 情况: JMeter 报告文件每 5 分钟通过 crontab 脚本附加新结果 另一个 awk 脚本查找响应时间大于 500 毫秒并发送电子邮件警报 问题陈述: 要求是只扫描报告文件
对于 Python,我使用 PyCrust,这是一个很好的图形外壳,感觉就像一个很好的 Java IDE(具有自动完成、内联文档并可以保存历史记录)。 Ruby 有类似的东西吗? 最佳答案 如果不需要
以下出现在我的 WinProc 中: if(message == WM_CREATE) { //Do WM_CREATE stuff } else { switch(message)
我是一名优秀的程序员,十分优秀!