Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 将输出存储为变量_Bash_Batch File - Fatal编程技术网

Bash 将输出存储为变量

Bash 将输出存储为变量,bash,batch-file,Bash,Batch File,我正在处理批处理文件,我想知道使用.bat文件保存输出的最佳方法,我也在使用Unix 我所做的是将输出发送到一个新的.txt文件,将其保存到一个变量中,然后删除该文件,但我想简化这个机制。我想直接保存输出,只是为了有一个更好的机制 输出,它是一个随机字符串输出: 只需要知道保存尾线=2的结果的最佳方法 全输出,无尾: 批量捕获命令输出的常用方法是for/f循环。 过滤输出时,不需要尾部,只需找到包含三个破折号的行: @echo off set command="...\curl.exe" -X

我正在处理批处理文件,我想知道使用.bat文件保存输出的最佳方法,我也在使用Unix

我所做的是将输出发送到一个新的.txt文件,将其保存到一个变量中,然后删除该文件,但我想简化这个机制。我想直接保存输出,只是为了有一个更好的机制

输出,它是一个随机字符串输出:

只需要知道保存尾线=2的结果的最佳方法

全输出,无尾:


批量捕获命令输出的常用方法是for/f循环。 过滤输出时,不需要尾部,只需找到包含三个破折号的行:

@echo off 
set command="...\curl.exe" -X POST -i -T "justatest.zip" "http://localhost:9080/rest/ifa/v1/triaged-assessments"
for /f "tokens=*" %%a in ('%command% ^|findstr ".*-.*-.*-.*"') do set "output=%%a"
echo %output%

我不确定为什么您使用tail输出最后两行,但只为我们提供一行输出。请澄清并注意,这不是一项免费的代码编写服务,请同时向我们展示您在完成任务方面所做的尝试,因为提供不尝试执行任务的代码和请求执行任务的代码是离题的。您能否在运行命令时展示完整的输出,没有尾部。@Gerhard Barnard检查主帖子,我用完整的输出进行编辑,它只是一个输出标题,我只需要随机字符串。谢谢。所以你要最后两行,但不想要最后一行,对吗?您之前说过您的输出是output:d076dc06-b34f-4f1b-bca3-e1c57efdb84c这是一个随机字符串输出,但您的编辑显示输出还将包括一行,该行仅包含一个句点。因此,考虑到前面的两条注释,建议您使用D:\Software\curl\u 7\u 53\u 1\u openssl\u nghttp2\u x64\curl.exe-X POST-T justatest.zip,这样会更好吗http://localhost:9080/rest/ifa/v1/triaged-评估|头-n 1?感谢Stephan的反馈。我试图用你的代码实现这一点,但我总是得到一个警告,系统无法找到指定的路径。错误。然后它找不到curl.exe或justatest.zip。检查您的路径。如果没有for条件,只有set命令,程序不会返回任何错误,但是当我将for条件放入其中时,返回错误:D:\ScanTeste>for/F令牌=*%a在'D:\Software\curl\u 7\u 53\u 1\u openssl\u nghttp2\u x64\curl.exe-X POST-i-T justatest.zip | findstr.*-.*-.*-.*-.''do set输出=%a系统找不到指定的路径。谢谢你的帮助,斯蒂芬。我真的很感激。我正在努力想办法,现在它给了我另一个错误类型://带有randomstring的header stuff |在这个时候是出乎意料的。回声关了。你忘了逃出管道了吗?
d076dc06-b34f-4f1b-bca3-e1c57efdb84c
HTTP/1.1 100 Continue
Content-Length: 0
Date: Fri, 18 Feb 2019 11:34:57 GMT

HTTP/1.1 200 OK
Date: Fri, 18 Feb 2019 11:34:57 GMT
X-Powered-By: Servlet/3.1
Content-Type: text/plain
Date: Fri, 18 Feb 2019 11:34:57 GMT
Content-Length: 36

df8f48d8-29f6-4de2-8186-8450c35658c3
.
@echo off 
set command="...\curl.exe" -X POST -i -T "justatest.zip" "http://localhost:9080/rest/ifa/v1/triaged-assessments"
for /f "tokens=*" %%a in ('%command% ^|findstr ".*-.*-.*-.*"') do set "output=%%a"
echo %output%