2017-03-27 72 views
1

我想Windows文件复制到Linux,但scp命令总是看到“协议不可用”,贝娄是我的代码:协议不可用错误在Linux上

#!/bin/bash 
client_IP='192.168.0.47' 
windows_log_folder='E:\project\robot_framework\第一个测试项目\logs' 
argfile_path='E:\project\robot_framework\第一个测试项目\logs\argfile.txt' 
time_folder=`date +%Y-%m-%T` 
echo ${time_folder} 
base_path=$1 
echo $base_path 
log_folder="${base_path}/logs/${time_folder}" 
mkdir "${log_folder}" 
echo "${log_folder}" 
echo "[email protected]${client_IP}:${argfile_path}" 
scp -p [email protected]${client_IP}:${argfile_path} '${log_folder}' 
ssh [email protected]${client_IP} "pybot.bat --argumentfile ${argfile_path} E:\project\robot_framework\第一个测试项目" #works fine 

files=`ssh [email protected]${client_IP} "dir /b /a:-D ${windows_log_folder}"` 
for file in $files 
do 
    path="${windows_log_folder}\\${file}" 
    echo $path 
    scp -p [email protected]${client_IP}:${path} '${log_folder}' #**error appears in this line** 
done 

enter image description here

回答

1

我从windows命令获得的文件名中有一个空格,我使用下面的代码修剪文件名,然后它工作正常。

for file in $files 
do 
    new_file="$(echo -e "${file}" | tr -d '[:space:]')" 
    path=${folder}${new_file} 
    path="${windows_log_folder}\\${new_file}" 
    echo "try to copy ${path} to ${log_folder}" 
    scp -p [email protected]${client_IP}:${path} ${log_folder} 
done