相关疑难解决方法(0)

如何在Windows中的变量中获取命令的结果?

我希望将命令的结果作为Windows批处理脚本中的变量(请参阅如何在bash中获取bash脚本等效命令的结果).可以在.bat文件中使用的解决方案是首选,但也欢迎其他常见的Windows脚本解决方案.

windows scripting batch-file

120
推荐指数
6
解决办法
24万
查看次数

使用Python的函数返回值为shell变量赋值

我有一个Python函数,fooPy()返回一些值.(int/double或string)

我想使用此值并将其分配给shell脚本.例如以下是python函数:

def fooPy():
    return "some string" 
    #return 10  .. alternatively, it can be an int

fooPy()
Run Code Online (Sandbox Code Playgroud)

在shell脚本中,我尝试了以下内容,但它们都不起作用.

fooShell = python fooPy.py
#fooShell = $(python fooPy.py)
#fooShell = echo "$(python fooPy.py)"
Run Code Online (Sandbox Code Playgroud)

python shell

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

在应用程序版本中使用svn版本号

在VS2010解决方案(不是.NET)中,我希望将svn修订版号作为应用程序版本的一部分.

我们目前不使用makefile,只有VS解决方案/项目设置.

我想在编译时获取工作副本修订号,将其存储到变量中,以便稍后可以在代码中使用它来显示版本号.

到目前为止,我已经成功地svnversion将最新版本的工作副本作为预建事件获取.

"C:\Program Files\CollabNet\Subversion Client\svnversion.exe" -n $(SolutionDir)
Run Code Online (Sandbox Code Playgroud)

在构建时,我可以看到正确的修订号返回到output控制台.

现在,问题是,如何将此值存储到可在代码中使用的变量中?

我已经尝试定义一个预编译变量(_SVNREV)并使用它直接从pre-build事件框保存上面cmd的结果,但这不起作用.

_SVNREV="C:\Program Files\CollabNet\Subversion Client\svnversion.exe" -n $(SolutionDir)
%_SVNREV%="C:\Program Files\CollabNet\Subversion Client\svnversion.exe" -n $(SolutionDir)
%_SVNREV="C:\Program Files\CollabNet\Subversion Client\svnversion.exe" -n $(SolutionDir)
$(_SVNREV)="C:\Program Files\CollabNet\Subversion Client\svnversion.exe" -n $(SolutionDir)
Run Code Online (Sandbox Code Playgroud)

这些都不起作用.

解决方案:我无法尝试从VS env中更新变量.所以我采用了另一种方法,将脚本称为预构建步骤,获取工作副本的svn修订版,然后创建包含该信息的头文件.

这是svnrev.bat对任何感兴趣的人:

@echo off
set cmd="C:\"Program Files\CollabNet\Subversion Client"\svnversion.exe -n %1 "
set versionfile=%1/version.h
FOR /F %%i IN ('%cmd%') DO SET SVNVER=%%i

echo Detected program revision %SVNVER% in %1
echo #pragma once > %versionfile% …
Run Code Online (Sandbox Code Playgroud)

c++ svn continuous-integration visual-studio-2010

8
推荐指数
1
解决办法
5341
查看次数