2016-06-08 29 views
0

我的PowerShell腳本有點麻煩。我寫這個將.txt文件上傳到SFTP到SFTP根目錄下的文件夾IN從PowerShell腳本調用時,SFTPC錯誤「Unexpected command parameter:-cmdfile」

我收到一個SFTPC錯誤。我猜它是與我的

$argu="$user -pw=$pw -cmdfile=$local\sftp.txt" 

它從$Local我的文件夾也移動到$destination麻煩,我猜是成爲SFTPC不能正常工作?

我對PowerShell相當陌生,而且我毫無希望地迷失了。

下面是下面的錯誤。

ERROR: Unexpected command parameter: -cmdfile=C:\Users\bendonac\Script. 

USAGE: 
sftpc [[email protected]]host[:port] OR -profile=file [-host=host] [-port=port] [- 
obfs=y|n] [-obfsKw=keyword] [-spn=SPN] [-sspi=y|n] [-sspiDlg=y|n] 

和腳本:

#PowerShell script to transfer files 
#Set file list to null 
[email protected]() 
[email protected]() 
#Set SFTP user and hostname 
$user="[email protected]" 
#Set SFTP Password 
$pw='Secure Password' 
#Set SFTP executable name 
$sftp_prog="sftpc.exe " 
#Set local folder 
$local="C:\Users\ben\Script test" 
#Set SFTP Arguments 
$argu="$user -pw=$pw -cmdfile=$local\sftp.txt" 
#Build SFTP command line 
$final=$sftp_prog+$argu 
#Set target location 
$destination="UNC PATH" 

$files=get-childitem -filter *.txt $destination 
foreach ($object1 in $files) { 
$file_list+="put "+$object1.fullname + "\in" 
} 
$file_list | out-file $local\sftp.txt 


#*********Stage 2 upload to SFTP Server ********* 
set-location "C:\Program Files\Bitvise Tunnelier" 
$sftp="sftpc.exe " 
$path="sftp_get_manifest.txt" 
$argu="$user -pw=$pw -cmdfile=$local\sftp.txt" 
#$final= $sftp+$argu 
cmd /c $final 
try{ 
move-item -path $local -destination $destination -force 
} 
Catch { 
$thereisanerror = ‘true’ 
} 
#Remove old sftp script if it exists 
if (test-path $local\sftp.txt) {remove-item $local\sftp.txt -force} 
#Check last exit code for any SFTP errors 

Error" -body "The SFTP download script has failed with an $lastexitcode   
error.  please investigate." -from "[email protected]" -smtpserver  
"cas.domain.internal" 

回答

0

你的腳本文件路徑包含空格。所以你必須把它包括在引號中以清楚表明路徑開始和結束的位置。

$argu="$user -pw=$pw -cmdfile=`"$local\sftp.txt`""