将硬编码路径更改为我想要的路径

时间:2013-09-20 05:41:53

标签: batch-file

我需要更改文件中定义的路径,即duster.properties和我想要的路径位置。

文件,即duster.properties内容: -

 com.test.import.uploadDirectory=C:\\progra~2\\Test\\Demo\\jboss7\\standalone\\uploads
 com.test.import.maxFilesUploadNumber=10

com.test.etl.pluginsRootDirectory=C:\\progra~2\\Test\\Demo\\jboss7\\standalone\\cloverETL\
\plugins
 com.test.etl.templatesDirectory=C:\\progra~2\\Test\\Demo\\jboss7\\standalone\\etl
 com.test.db.user=postgres
 com.test.db.pass=password
 com.test.addressdoctor.customerID=149374
 com.test.addressdoctor.password=apr2511
 com.test.addressdoctor.maxi.customerID=146890

正如您在duster.properties中看到的那样,该位置是硬编码的

   C:\\progra~2\\Test\\Demo\\jboss7\\standalone\\uploads

但我可以在系统的任何地方找到我的jboss7位置,即C盘或D盘。

我可以使用以下代码搜索jboss7的位置并将其路径设置为变量名称,即'folderLocation'。

 @echo off

for /f "delims=" %%a in (' dir "c:\jboss7" /b /s /ad ') do if /i "%%~nxa"=="jboss7" set
"folderLocation=%%a"

if not defined folderLocation for /f "delims=" %%a in (' dir "d:\jboss7" /b /s /ad ')
do if /i "%%~nxa"=="jboss7" set "folderLocation=%%a"
echo "%folderLocation%"
pause

现在我想要的是编辑文件并将变量即folderLocation设置为路径   或者用简单的话来找到并替换路径      。 e.g: -

'folderLocation'\\standalone\\uploads

并且在duster.properties的每条路径中都是明智的。 是否有可能在批处理脚本中?实际上我对批处理脚本没有很好的了解。

任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

这适用于您的示例数据,并使用来自 - http://www.dostips.com/forum/viewtopic.php?f=3&t=3855

的名为repl.bat的帮助程序批处理文件
@echo off
set "newpath=d:\\stuff\\and\\widgets"
type "duster.properties" | repl "(Directory=).*(\\\\standalone\\\\)" "$1%newpath%$2" >"duster.properties.tmp"
move "duster.properties.tmp" "duster.properties"

答案 1 :(得分:-1)

使用父路径方法 文件 currentPath = 新文件(dir.getParent()) String currentFolder= currentPath.getName().toString()