2016-06-08 16 views
0

Ich habe ein wenig Probleme mit meinem PowerShell-Skript. Ich schreibe das, um .txt Dateien zu einem SFTP in einen Ordner auf der Wurzel des SFTP namens IN hochzuladen.SFTPC-Fehler "Unerwarteter Befehlsparameter: -cmdfile" beim Aufruf von PowerShell-Skript

Ich bekomme einen SFTPC-Fehler. Ich vermute, es wird Probleme, mit meinem

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

Es ist auch mein Ordner $Local-$destination bewegen, was ich vermute SFTPC geworden ist nicht richtig funktioniert?

Ich bin ziemlich neu in PowerShell und ich bin hoffnungslos verloren.

Hier ist der Fehler unten.

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] 

Und das Skript:

#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" 

Antwort

0

Ihr Pfad zur Skriptdatei enthält Leerzeichen. Sie müssen es also in Anführungszeichen setzen, um zu verdeutlichen, wo der Pfad beginnt und endet.

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