从批处理文件中读取网络路径并使用批处理文件脚本将其写入另一个批处理文件

Posted

技术标签:

【中文标题】从批处理文件中读取网络路径并使用批处理文件脚本将其写入另一个批处理文件【英文标题】:reading network path from batch file and writing it to another batch file using batch file scripting 【发布时间】:2014-02-02 07:08:28 【问题描述】:

背景:

我是批处理文件 IO 的新手,需要帮助解决以下问题 我有一个源文件applaunch.bat,内容如下

start /B /D "\\MainServTST01.XYZ.ORG\BuildQA\BuildTEST\1.33.4.2\Application\Client2" Client.lTracking.exe 

我有另一个批处理文件buildcopy.bat,我用它来将构建从网络路径复制到本地磁盘上的另一个路径,它的内容是这样的

REM
robocopy \\MainServTST01.XYZ.ORG\BuildQA\BuildTEST\1.33.4.2\Application\Client2     D:\BuildInstance\QA_Copy /s /e /zb
pause 

问题:

buildcopy.bat我目前正在手动更新源路径,即

\\MainServTST01.XYZ.ORG\BuildQA\BuildTEST\1.33.4.2\Application\Client2 

我想在读取源路径的“buildcopy.bat”中编写批处理脚本,即

\\MainServTST01.XYZ.ORG\BuildQA\BuildTEST\1.33.4.2\Application\Client2 

来自applaunch.bat 并更新它为buildcopy.batrobocpy 命令的源路径

提前致谢。

【问题讨论】:

buildcopy.bat 显示的是整个批处理文件吗?它可以很简单地完成并用所需的信息完全替换buildcopy.bat buildcopy.bat 是我想要编写脚本以从变量中的 applaunch.bat 读取网络路径然后将其用作我的 robocopy 命令的源的文件。顺便说一句,我通过谷歌搜索得到了解决方案,我很快就会在这里发布。 因为我是新用户,网站不允许我回答我自己的问题 :) 从谷歌搜索得到了解决方案,这篇文章帮助了很多 superuser.com/questions/514284/… 这是关于如何在 FOR 中使用引号作为分隔符解决我的问题:在 buildcopy.bat 中我必须这样写 FOR /F tokens^=2^ delims^=^" %%i IN (applaunch.bat) DO (set buildpath=%%i) robocopy %buildpath% D:\BuildInstance\QA_Copy /s /e /zb 【参考方案1】:

从谷歌搜索得到解决方案,这篇文章帮助了很多https://superuser.com/questions/514284/how-do-i-use-a-quote-as-a-for-f-delimiter-in-cmd-exe-on-windows-7 这是关于如何在 FOR 中使用引号作为分隔符来解决我的问题:在 buildcopy.bat 中我必须这样写

FOR /F tokens^=2^ delims^=^" %%i IN (applaunch.bat) DO ( set buildpath=%%i ) 
robocopy %buildpath% D:\BuildInstance\QA_Copy /s /e /zb

【讨论】:

以上是关于从批处理文件中读取网络路径并使用批处理文件脚本将其写入另一个批处理文件的主要内容,如果未能解决你的问题,请参考以下文章

批处理文件:从 .csv 文件中读取浮点值

使用批处理脚本读取文本文件并以不同的顺序将特定文本复制到新的文本文件中[关闭]

从批处理文件的进程中读取 InputStream 会跳到下一行

如何从批处理脚本中的文件路径中删除最后一个“\”

Windows批处理脚本在子文件夹中查找最大的PDF文件并使用Ghostscript和`pdftk`在页脚中打印路径

批处理脚本使 setlocal 变量被其他批处理文件访问