从批处理文件中读取网络路径并使用批处理文件脚本将其写入另一个批处理文件
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.bat
中robocpy
命令的源路径
提前致谢。
【问题讨论】:
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
【讨论】:
以上是关于从批处理文件中读取网络路径并使用批处理文件脚本将其写入另一个批处理文件的主要内容,如果未能解决你的问题,请参考以下文章
使用批处理脚本读取文本文件并以不同的顺序将特定文本复制到新的文本文件中[关闭]
从批处理文件的进程中读取 InputStream 会跳到下一行