現在、CMDファイルにバンドルされたFTPリクエストを呼び出すpowershellスクリプトがあります。
それは機能しますが、追跡するファイルが1つ少なくなるため、FTPリクエストをpowershellスクリプトに統合したいと考えています。
これまでのところ、これを試してみましたが、エラーが発生します(以下を参照)。
# run the command script to extract the file
#defines command to be run
$command = '
@echo off
setlocal
set uname=name
set passw=pass
set hostname=hstname
set filespec=spec
echo %uname%> test.ftp
echo %passw%>> test.ftp
echo cd DIRNAME>> test.ftp
echo binary>> test.ftp
echo get %filespec%>> test.ftp
echo bye>> test.ftp
ftp -s:test.ftp %hostname%
if errorlevel 1 pause
endlocal
'
# runs command
iex $command
エラー:
Invoke-Expression : スプラッティング演算子 '@' を使用して式の変数を参照することはできません。「@echo」は、コマンドの引数としてのみ使用できます。式で変数を参照するには、'$echo' を使用します。Dir\File.ps1:32 char:4 + iex <<<< $command + CategoryInfo : ParserError: (echo:String) [Invoke-Expression]、ParseException + FullyQualifiedErrorId : SplattingNotPermitted、Microsoft.PowerShell.Commands.InvokeExpressionCommand
スクリプトを次のように変更しようとしました$echo
が、次のエラーが発生します。
Invoke-Expression : 式またはステートメントに予期しないトークン 'off' があります。Dir\File.ps1:32 char:4 + iex <<<< $command + CategoryInfo : ParserError: (off:String) [Invoke-Expression]、ParseException + FullyQualifiedErrorId : UnexpectedToken,Microsoft.PowerShell.Commands.InvokeExpressionCommand