Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.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
Powershell 使用Windows批处理文件仅从文本文件中获取第一行_Powershell_Batch File - Fatal编程技术网

Powershell 使用Windows批处理文件仅从文本文件中获取第一行

Powershell 使用Windows批处理文件仅从文本文件中获取第一行,powershell,batch-file,Powershell,Batch File,我正在尝试从我的文本文件(其数据已按降序排序)中提取第一行(实际上是第一个数字),如下所示: set /p lastnum =< sorted.txt pause echo !lastnum! pause set /A lastNum = lastNum+1 echo !lastnum! pause sorted.txt: 10 9 8 7 6 5 4 3 2 1 如果我做错了什么,请告诉我。sorted.txt的长度每次都会变化,第一个值也会变化。但始终必须获取最大的数字(即第一行)

我正在尝试从我的文本文件(其数据已按降序排序)中提取第一行(实际上是第一个数字),如下所示:

set /p lastnum =< sorted.txt
pause
echo !lastnum!
pause
set /A lastNum = lastNum+1
echo !lastnum!
pause
sorted.txt

10 9 8 7 6 5 4 3 2 1 如果我做错了什么,请告诉我。sorted.txt的长度每次都会变化,第一个值也会变化。但始终必须获取最大的数字(即第一行)

我也尝试了以下PowerShell脚本:

powershell.exe -Command  $lastnum = Get-Content -LiteralPath "C:\offsite\sorted.txt" | ForEach-Object { $Output += [Int]($_.Trim()) }
但它仍然不起作用

set/p lastnum= set /p lastnum =< sorted.txt
设置变量
%lastnum%
(或
!lastnum!
延迟扩展)。
=
前面的空格获取变量名的一部分。(在
set var=val
=
后面的空格将获得部分值。)

set/a
工作方式不同:忽略空格。)

set/p lastnum=
设置变量
%lastnum%
(或
!lastnum!
延迟扩展)。
=
前面的空格获取变量名的一部分。(在
set var=val
=
后面的空格将获得部分值。)


set/a
工作方式不同:忽略空格。)

使用Powershell,您的命令调用如下所示:

(Get-Content 'C:\offsite\sorted.txt').Split([environment]::newline)[0]

使用Powershell,您的命令调用如下所示:

(Get-Content 'C:\offsite\sorted.txt').Split([environment]::newline)[0]

您发布的代码应该回显文本字符串“!lastnum!”两次,因为您不启用延迟扩展。但即使启用延迟扩展或更改
%
由于赋值过程中变量名和
=
之间存在空格,这将成为变量名的一部分(
%lastnum%

将代码更改为:


set/p lastnum=您发布的代码应该回显文本字符串“!lastnum!”两次,因为您不启用延迟扩展。但即使启用延迟扩展或更改
%
由于赋值过程中变量名和
=
之间存在空格,这将成为变量名的一部分(
%lastnum%

将代码更改为:


set/p lastnum=如果我删除符号前后的空格,我仍然得到不正确的输出=按任意键继续。■7按任意键继续。1按任意键继续。确保将sorted.txt保存为ANSI。批处理不能很好地处理UTF-8.sorted.txt是由另一个逻辑实时生成的,该逻辑在itI中排序和写入数据。如果我删除符号前后的空格,我仍然得到不正确的输出=按任意键继续。■7按任意键继续。1按任意键继续。确保将sorted.txt保存为ANSI。批处理不能很好地处理UTF-8.sorted.txt是由另一个逻辑实时生成的,该逻辑对其中的数据进行排序和写入。在问新问题之前接受最后一个问题的答案如何?在问新问题之前接受最后一个问题的答案如何?谢谢…现在我已经尝试了这个Powershell.exe-executionpolicy remotesigned-文件C:\offsite\highest.ps1 set/p lastnum=谢谢…现在我已经尝试了这个Powershell.exe-executionpolicy remotesigned-文件C:\offsite\highest.ps1 set/p lastnum=