Batch file 使用相对路径执行命令,并将该命令的返回值保存在批处理脚本中

Batch file 使用相对路径执行命令,并将该命令的返回值保存在批处理脚本中,batch-file,cmd,tortoisesvn,Batch File,Cmd,Tortoisesvn,我需要在批处理脚本中执行命令“svinversion”,以获取我的svn文件夹的当前版本 如果我只运行命令,它将在我的svn文件夹外执行。因此,我需要从我的文件夹中运行命令svversion 我在尝试类似的东西 @echo off set PATH=%cd% echo %PATH% // Just for debugging purpose for /f "delims=" %%i in ("%PATH%" 'svnversion') do set VERSION=%%i @echo %VERS

我需要在批处理脚本中执行命令“svinversion”,以获取我的svn文件夹的当前版本

如果我只运行命令,它将在我的svn文件夹外执行。因此,我需要从我的文件夹中运行命令svversion

我在尝试类似的东西

@echo off
set PATH=%cd%
echo %PATH% // Just for debugging purpose
for /f "delims=" %%i in ("%PATH%" 'svnversion') do set VERSION=%%i
@echo %VERSION%
我想要的是转到路径,例如“C:\Folder\SVN\trunk”,执行命令“svinversion”,并保存它返回的返回值


如果我从cmd运行脚本,它不会涉及路径,但是批处理脚本是在我的构建环境中执行的,当我为批处理脚本编译项目时,路径似乎是错误的。

解决了这个问题,只需添加cd%~pd0

@echo off
cd %~pd0
for /f "delims=" %%i in ('svnversion') do set VERSION=%%i
@echo %VERSION%

请再努力一点,把你的代码读回去,看看你是否能发现任何错误。我真的不明白你的意思。我现在希望它能正常工作,事实上我对此很满意,我能理解错误的存在,但现在你有机会回顾它,并且仍然相信它是正确的。我会给你讲清楚的;你的代码错了!我从你的评论中了解到上面的代码有问题。由于我对批处理脚本知之甚少(可以说更好),仅仅指出某些地方出了问题并没有多大帮助。我也从来没有说过我相信它是正确的,但它是有效的。哦,谢谢你,aschipfl,我没有复制和粘贴我的解决方案,而是不小心打错了。我会编辑它!切勿(过度)写入
路径
变量,系统使用该变量查找可执行文件!