批处理 - Echo不会在循环

时间:2015-10-19 09:56:33

标签: loops batch-file echo

我正在做一些实验来了解批处理脚本的工作原理。

我在循环中显示一些文字时遇到问题

这是我的代码:

 for  %%j in (C:\Users\*) do (
 SET _test=123456789abcdef0
  SET _result=%_test:~0,5%
 ECHO %_result%          =12345
 )

结果是:                      = 12345

如果我使用以下代码:

 SET _test=123456789abcdef0
  SET _result=%_test:~0,5%
 ECHO %_result%          =12345

然后结果是  12345 = 12345如预期。

这里的循环有什么问题?

1 个答案:

答案 0 :(得分:2)

您需要delayed expansion

public static int GetOpenPort(int startPort = 2555)
{
    int portStartIndex = startPort;
    int count = 99;
    IPGlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties();
    IPEndPoint[] tcpEndPoints = properties.GetActiveTcpListeners();

    List<int> usedPorts = tcpEndPoints.Select(p => p.Port).ToList<int>();
    int unusedPort = 0;

    unusedPort = Enumerable.Range(portStartIndex, 99).Where(port => !usedPorts.Contains(port)).FirstOrDefault();
    return unusedPort;
}