如何解决设置 /p 无法读取 sftp 映射文件
我正在尝试编写一个批处理文件来充当 Source-Insight 和在 Linux 服务器上运行的 Git 之间的接口,但我遇到了一个问题,即 set /p
似乎没有像宣传的那样工作。
批处理文件应该运行一个 linux 脚本(通过 plink),它将把适当的文件检出到两个目录中,然后调用 Beyond Compare 来比较目录(注意,这些位于 sftp 安装的驱动器上,以便dos可以看到它们)。目录名称是动态的,因此我需要批处理文件在将生成的目录名称传递给 Beyond Compare 之前从文件中读取生成的目录名称。我似乎无法让这个工作......
我的批处理脚本中有以下几行:
@echo on
plink server1234 -l %user% -i %ppk_file% "cd %root%; ~/bin/compare_git_all.sh --debug --ref"
echo "set /p dir=<%dosroot%\.comparegit.dosdir"
set /p dir=<%dosroot%\.comparegit.dosdir
echo dir="%dir%" (from %dosroot%\.comparegit.dosdir)
"C:\Program Files\Beyond Compare 4\BCompare.exe" %dir%.refpt %dir%
@echo off
我的输出结果是:
"set /p dir=<z:\builddir\pd2\wt1\.comparegit.dosdir"
dir="" (from z:\builddir\pd2\wt1\.comparegit.dosdir)
所以第一个问题(真的很烦恼),是 @echo on
不会导致命令被回显(根据我在谷歌上搜索的页面,它应该这样做......)
但是让我失望的是 %dir%
似乎是空白的。我已验证该文件包含我要查找的数据:
C:\>more z:\builddir\pd2\wt1\.comparegit.dosdir
z:\builddir\pd2\wt1\.comparegit.zmP8BK
如果我从命令提示符运行相同的命令,我得到:
C:\>set dir=blank
C:\>echo %dir%
blank
C:\>set /p dir=<z:\builddir\pd2\wt1\.comparegit.dosdir
C:\>echo %dir%
z:\builddir\pd2\wt1\.comparegit.zmP8BK
所以,我错过了一些东西,但我不确定它是什么。任何帮助,将不胜感激。 (注意,如果有任何区别,批处理文件是从 Source Insight 中的键映射调用的)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。