Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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
Loops 使用带/P的集合时,循环被卡住_Loops_Batch File_Variables_Parameters - Fatal编程技术网

Loops 使用带/P的集合时,循环被卡住

Loops 使用带/P的集合时,循环被卡住,loops,batch-file,variables,parameters,Loops,Batch File,Variables,Parameters,正如一些人可能知道的那样,我正在编写一个脚本来收集计算机的信息,以使这个过程非常快。不,我有点卡住了,因为我想把解码的结果写入一个文本文件,而不想用新行滥发信息。问题是,只要我想添加/p参数,它就会在第一轮解码后停止 @echo offsure set list=89 86 51 84 49 55 52 49 52 49 SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION FOR %%X IN (%list%) DO ( set /p tem

正如一些人可能知道的那样,我正在编写一个脚本来收集计算机的信息,以使这个过程非常快。不,我有点卡住了,因为我想把解码的结果写入一个文本文件,而不想用新行滥发信息。问题是,只要我想添加
/p
参数,它就会在第一轮解码后停止

@echo offsure
set list=89 86 51 84 49 55 52 49 52 49
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
FOR %%X IN (%list%) DO (
    set /p temp=%%~nX
    cmd /c exit !temp:~0,7!
    set temp2=!=exitcodeAscii! 
    echo !temp2!
) >> C:\TestConverters.txt
Echo. >> C:\TestConverters.txt
pause

这是我目前正在使用的源代码。如果我删除/p参数,它工作得非常好。因此,现在我实际上只是在尝试改进脚本中使用的测试结果,以便至少已经计算出这一点。

set/p temp=%%~nX
将要求用户输入名为
temp
的变量,并提示
%%~nX
。可能不是你想要的

我猜你想写
!temp2无换行符。
是的,有一个
set/p
技巧可以这样做,但是a)您在错误的位置使用了它,b)您不希望用户输入某些内容(这将暂停您的脚本),而是从
NUL
获取输入:

替换

echo !temp2!


set/p temp=%%~nX
将要求用户输入名为
temp
的变量,并提示
%%~nX
。可能不是你想要的

我猜你想写
!temp2无换行符。
是的,有一个
set/p
技巧可以这样做,但是a)您在错误的位置使用了它,b)您不希望用户输入某些内容(这将暂停您的脚本),而是从
NUL
获取输入:

替换

echo !temp2!

或者您可以试试这个

 @echo off
 set list=89 86 51 84 49 55 52 49 52 49
 SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
 FOR %%X IN (%list%) DO (
 set temp=%%~nX
 cmd /c exit !temp:~0,7!
 set temp2=!=exitcodeAscii!
 <nul set /p =!temp2!
 ) >> C:\BACKUPS\TestConverters.txt
 Echo. >> C:\BACKUPS\TestConverters.txt
 pause
@echo关闭
集合列表=89 86 51 84 49 55 52 49
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
对于%%X IN(%list%)执行以下操作(
设置温度=%%~nX
命令/c退出!温度:~0,7!
设置temp2=!=exitcodescii!
>C:\BACKUPS\TestConverters.txt
Echo.>>C:\BACKUPS\TestConverters.txt
暂停
或者您可以试试这个

 @echo off
 set list=89 86 51 84 49 55 52 49 52 49
 SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
 FOR %%X IN (%list%) DO (
 set temp=%%~nX
 cmd /c exit !temp:~0,7!
 set temp2=!=exitcodeAscii!
 <nul set /p =!temp2!
 ) >> C:\BACKUPS\TestConverters.txt
 Echo. >> C:\BACKUPS\TestConverters.txt
 pause
@echo关闭
集合列表=89 86 51 84 49 55 52 49
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
对于%%X IN(%list%)执行以下操作(
设置温度=%%~nX
命令/c退出!温度:~0,7!
设置temp2=!=exitcodescii!
>C:\BACKUPS\TestConverters.txt
Echo.>>C:\BACKUPS\TestConverters.txt
暂停
一个简单的例子,如果您真的不需要使用
设置/p

@ECHO关闭
SETLOCAL ENABLEDELAYEDEXPANSION
设置“列表=89 86 51 84 49 55 52 49”
设置“变量=”
对于%%X IN(%list%)执行(CMD/C退出%%X
设置“variable=!variable!!=EXITCODEASCII!”)
如果定义了变量>“C:\TestConverters.txt”ECHO(%variable%
暂停
一个简单的例子,如果您真的不需要使用
设置/p

@ECHO关闭
SETLOCAL ENABLEDELAYEDEXPANSION
设置“列表=89 86 51 84 49 55 52 49”
设置“变量=”
对于%%X IN(%list%)执行(CMD/C退出%%X
设置“variable=!variable!!=EXITCODEASCII!”)
如果定义了变量>“C:\TestConverters.txt”ECHO(%variable%
暂停

它有点臃肿,
%%X
=
%%~nX
=
!temp!
=
!temp:~0,7!
@DodgyCodeException:它是一个未记录的内部变量,将errorlevel转换为ASCII(列在)它有点臃肿,
%%X
=
%%~nX
=
!temp!
=
!temp:~0,7!
@DodgyCodeException:它是一个未记录的内部变量,将errorlevel转换为ASCII(列在)可能比用
set/p
方法写每个字符都要快。这不是速度问题,而是功能问题。如果它对我来说工作得很好,那么我很高兴。因此,我没有任何必要让它更快。它可能只会快1-10毫秒,这并不是什么大问题h、 对于1000万行或1000万个值,我似乎不需要这样做。@M.Stephen,速度不是问题,但在可行的情况下,效率应该是问题。Stephans point应该读到我的建议可能更有效。我首先对你的问题进行了评论,Stephan的回答基于我的评论,但暗示了我后来的回答可能更快。你决定忽略所有这些,而接受他的答案,这当然是你的感言。我认为你在四天后在我完美的答案下争论他的观点没有任何好处,同时继续忽略我所做的贡献!可能先写一行,然后一次就写,比写每一行更快用
set/p
方法拉克特。这不是速度的问题,而是功能的问题。如果它对我来说工作得很好,那么我很高兴。所以我没有任何必要让它更快。它可能只会快1-10毫秒,这其实不算多。这不像我需要为1000万行或值这样做。@M.Stephen,s撒尿不是问题,但在可行的情况下,效率应该是问题。Stephans point应该读到我的建议可能更有效。我首先对你的问题进行了评论,Stephan的回答基于我的评论,但暗示我后来的回答可能更快。你决定忽略所有这些,转而接受他的回答,这当然是你的感言。四天后,在我完美的回答下,我认为你争论他的观点没有任何好处,同时继续忽略我的贡献!老兄,非常感谢。现在我只需要过滤掉var“列表”中的信息然后我终于完成了最终脚本的设置。真的非常感谢。如果我能为你做点什么,请告诉我。还有很好的解释。:-)伙计,非常感谢。现在我只需要过滤掉var“列表”中的信息然后,我终于完成了最终脚本的设置。非常感谢。如果我能为您做些什么,请告诉我。还有很好的解释。:-)