我有一个类似于此的目录结构:
在'D:\Ashwin\rev'下
rev
-->dist
---->app.exe
-->copier
---->cs
------>cs.bat
------>pscp.exe
-->Copy.batCopy.bat的内容如下:
@echo "Starting copy"
@call "copier\cs\cs.bat"cs.bat的内容还不完整。
%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文件发送到远程服务器。
我把这两根线串连在一起。
BINARY,它有app.exe名称。ASH,它是当前工作路径和BINARY的级联字符串。使用这个连接的刺,我计划将其传递给pscp命令,并将文件传输到远程服务器。
我应该只使用Copy.bat复制文件,而不是cs.bat。
这里还缺什么?
P.S:我本可以硬编码这条路,但这不是我想要做的。因为app.exe将不是目录中唯一的文件,因为我将添加其他几个文件。
发布于 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"
所以你的代码会更像这样
@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/workspacehttps://stackoverflow.com/questions/10514424
复制相似问题