Amazon web services AWS CLI S3 COPY命令Get FINDSTR因变量太长而出错?

Amazon web services AWS CLI S3 COPY命令Get FINDSTR因变量太长而出错?,amazon-web-services,amazon-s3,command-line-interface,Amazon Web Services,Amazon S3,Command Line Interface,当我通过AWS CLI将文件复制到带有变量的S3 bucket时,我得到了一个错误 --带变量的命令 aws s3 cp %SRC_FILENAME% s3://%S3_BUCKET%/%DEST_FILENAME% aws s3 cp G:\XXX\XXX\XXX\XXX.bak s3://<S3_bucketname>/<TAG>/<FILENAME> set S3API_COMMAND_STR=aws s3api put-object --buck

当我通过AWS CLI将文件复制到带有变量的S3 bucket时,我得到了一个错误

--带变量的命令

aws s3 cp %SRC_FILENAME% s3://%S3_BUCKET%/%DEST_FILENAME% 
aws s3 cp G:\XXX\XXX\XXX\XXX.bak s3://<S3_bucketname>/<TAG>/<FILENAME>
set S3API_COMMAND_STR=aws s3api put-object --bucket %S3_BUCKET% --key %DEST_FILENAME% --body %SRC_FILENAME% --metadata md5chksum=%SRC_HASH% --content-md5 %SRC_HASH% 
--错误消息

FINDSTR: 1 行目は長すぎます。 (original)
FINDSTR: TOO LONG 1st.line (translated)
如果我在没有任何变量的情况下设置源和目标S3 bucket文件名,它会像往常一样成功结束。由相同逻辑(变量)指定的“aws s3api put object”命令从未遇到过相同的问题

--不带变量的命令

aws s3 cp %SRC_FILENAME% s3://%S3_BUCKET%/%DEST_FILENAME% 
aws s3 cp G:\XXX\XXX\XXX\XXX.bak s3://<S3_bucketname>/<TAG>/<FILENAME>
set S3API_COMMAND_STR=aws s3api put-object --bucket %S3_BUCKET% --key %DEST_FILENAME% --body %SRC_FILENAME% --metadata md5chksum=%SRC_HASH% --content-md5 %SRC_HASH% 
我认为aws s3api命令更好,但有时我需要发送超过5GB的文件,所以暂时应该选择aws cp命令

我认为这个问题可能是由于Windows变量的长度限制造成的,带有变量的s3api命令应该是更长的变量,尽管

如果有人遇到同样的问题,请告诉我你是如何处理的。如有任何建议,将不胜感激

真诚地

<附加信息> 只是暂时的解决办法,一旦输出命令行并执行它,它就会成功地工作

echo %S3_COMMAND_STR%  > temp_cmd.bat
call temp_cmd.bat
但是仍然不确定为什么在aws cli上发生此findstr错误,因此请提供任何信息。

仅供参考

仍然不确定AWS CLI为什么会接受它,但遵循这两种解决方法也会成功

aws s3 cp %SRC_FILENAME% s3://%S3_BUCKET%/%DEST_FILENAME% & if ErrorLevel 1 goto ERR_S3_UPLOAD


@哈迪,谢谢你的建议:)