代码之家  ›  专栏  ›  技术社区  ›  not-a-user

Python在长的windows cmd批处理命令行中跳过单个字符

  •  1
  • not-a-user  · 技术社区  · 6 年前

    这是一个批处理文件 long.bat

    @echo off
    python print_argv.py ^
     00234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     02234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     03234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     04234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     05234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     06234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     07234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     08234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     09234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     10234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     11234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     12234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     13234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     14234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     15234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     16234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     17234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     18234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     19234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     20234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     21234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     22234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     23234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     24234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     25234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     26234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     27234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     28234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     29234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     30234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     31234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     32234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     33234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     34234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     35234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     36234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     37234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     38234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     39234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     40234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     41234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     42234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     43234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     44234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     45234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     46234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     47234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     48234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     49234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     50234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     51234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     52234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     53234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     54234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     55234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     56234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     55234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     58234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     59234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     60234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     61234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     62234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     63234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     64234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     65234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     66234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     67234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     6823456789012345.6789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     69234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678^
     END
    pause
    

    这就调用了python 3脚本 print_argv.py

    import sys
    for x in sys.argv:
        print(x)
    

    并产生以下结果:

    print_argv.py
    00234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    02234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    03234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    04234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    05234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    06234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    07234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    08234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    09234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    10234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    11234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    12234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    13234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    14234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    15234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    16234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    17234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    18234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    19234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    20234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    21234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    22234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    23234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    24234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    25234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    26234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    27234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    28234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    29234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    30234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    31234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    32234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    33234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    34234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    35234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    36234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    37234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    38234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    39234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    40234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    41234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    42234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    43234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    44234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    45234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    46234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    47234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    48234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    49234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    50234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    51234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    52234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    53234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    54234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    55234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    56234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    55234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    58234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    59234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    60234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    61234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    62234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    63234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    64234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    65234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    66234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    67234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    68234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    69234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
    END
    Press any key to continue . . .
    

    为什么点字符来自第71行(以 68 )输出中缺少第18列?

    看起来python在位置8192(遗留(?)周围跳过了一个字符(无论是点还是其他)windows命令行长度限制)。

    这给我的批处理文件带来了一个真正的问题,该批处理文件将许多文件名传递给python脚本,因为其中一个文件名被破坏了。。。

    我在Windows 10上,这是我的python:

    Python 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 02:47:15) [MSC v.1900 32 bit (Intel)] on win32
    
    0 回复  |  直到 6 年前