首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接两个字符串,“当前工作目录”和“app.exe”文件名,以设置绝对路径

问连接两个字符串,“当前工作目录”和“app.exe”文件名,以设置绝对路径
EN

Stack Overflow用户
提问于 2012-05-09 10:40:39
回答 1查看 5.7K关注 0票数 2

我有一个类似于此的目录结构:

在'D:\Ashwin\rev'下

代码语言:javascript
复制
rev
-->dist
---->app.exe
-->copier
---->cs
------>cs.bat
------>pscp.exe
-->Copy.bat

Copy.bat的内容如下:

代码语言:javascript
复制
@echo "Starting copy"
@call "copier\cs\cs.bat"

cs.bat的内容还不完整。

代码语言:javascript
复制
%BINARY% = DIR /b dist\*%.exe
%ASH% = %CD%%1\dist\%BINARY% 

@call copier\cs\pscp -l root -pw ReDBuLL <What to do?> 192.168.1.16:/root/workspace

这就是为什么。我对批处理脚本完全陌生。此脚本的目的是使用.exe工具单独将pscp文件发送到远程服务器。

我把这两根线串连在一起。

  1. BINARY,它有app.exe名称。
  2. ASH,它是当前工作路径和BINARY的级联字符串。

使用这个连接的刺,我计划将其传递给pscp命令,并将文件传输到远程服务器。

我应该只使用Copy.bat复制文件,而不是cs.bat。

这里还缺什么?

P.S:我本可以硬编码这条路,但这不是我想要做的。因为app.exe将不是目录中唯一的文件,因为我将添加其他几个文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-09 12:03:54

我假设您的代码来自linux脚本,但是在windows世界中,这并不是这样的。

不要使用空格来格式化您的代码(如在%BINARY% = DIR /b dist\*%.exe中),它会改变行为!

二进制和ASH不设置为命令的输出,内容是命令。

要获得命令的输出,通常使用FOR/F-Loop构造。

for /f "delims=" %%A in ('DIR /b dist\*.exe') DO set "binary=%%A"

所以你的代码会更像这样

代码语言:javascript
复制
@echo off
for /f "delims=" %%A in ('DIR /b dist\*.exe') Do set "binary=%%A"
set "ASH=%CD%\dist\%BINARY%"

set "PastedString=%ASH%\%BINARY%"
echo The content of PastedString is %PastedString%
call copier\cs\pscp -l root -pw ReDBuLL "%PastedString%" 192.168.1.16:/root/workspace
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10514424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档