Batch file 批处理文件:<;命令行的一部分>;在这个时候是出人意料的

Batch file 批处理文件:<;命令行的一部分>;在这个时候是出人意料的,batch-file,Batch File,尝试在批处理文件中执行命令并将结果放入变量中 以下是我将交互执行的内容: curl -d "username=someUser" http://someServer/trusted 结果是一个15-20个字符的字母数字字符串 下面是我在批处理文件中执行相同操作的尝试: FOR /f %AA IN('curl -d \"username=someUser\" http://someServer/trusted') DO ECHO %AA 返回的错误为: //someServer/Trusted

尝试在批处理文件中执行命令并将结果放入变量中

以下是我将交互执行的内容:

curl -d "username=someUser" http://someServer/trusted
结果是一个15-20个字符的字母数字字符串

下面是我在批处理文件中执行相同操作的尝试:

FOR /f %AA IN('curl -d \"username=someUser\" http://someServer/trusted') DO ECHO %AA
返回的错误为:

//someServer/Trusted') was unexpected at this time
我以为我在处理某种逃避问题,所以我在引号前添加了\符号。从我所读到的内容来看,http中的:symbol不需要转义,但我感兴趣的是,失败似乎是从这里开始的


有什么想法吗?我使用的是Win8.1,仅供参考,echo只处理一条线路,空格将阻止它,您可能需要用管道传输它

  • for变量有一个字符变量(%A而不是%AA)
  • 你错过了在和之间的空格(
  • 在批处理文件中,必须将for变量的百分号加倍(%%a而不是%a)

  • 1.
    for
    -变量有一个字符变量(%A而不是%AA)2.您在
    之间遗漏了一个空格(
    3.在批处理文件中,您必须将
    for
    -变量的百分比符号加倍(%%A而不是%A),这就是-我需要的是IN(..)vs(…)然后我需要将变量名缩短为%%A。请回答,这样我就可以将您的响应标记为解决方案。我花了20分钟试图找出我的变量出错的原因。我使用的是一个单词而不是一个字符T。我第一次读到什么“一个字符变量”时不明白意思是。这意味着for循环中变量的名称必须是一个字符长,如
    %j
    。很明显,但很奇怪,我想强调一下。