【问题标题】:Batch with tslint command : error “Input line is too long”使用 tslint 命令批处理:错误“输入行太长”
【发布时间】:2019-09-19 04:34:18
【问题描述】:

我使用字符 ^ 将这个命令写在多行上,但这个命令被认为是一行。

当文件开始包含一定数量的字符时会导致错误。

我的命令如下所示:

tslint -c ../tslint.json --project tsconfig.json --out output.txt --format msbuild ^
 -e '**/js/default.ts'  ^
 -e 'controls/folder1/file1.ts' ^
 -e 'controls/folder1/file2.ts' ^
 -e 'controls/folder2/file1.ts' ^
 -e 'controls/folder2/file2.ts' ^
 -e 'controls/folder2/file3.ts' ^
   ...
   ...
 -e 'controls/folder56/file8.ts' ^

它包含 154 行,当我写一个包含 10 个字符的新行时,尽管 9 个字符仍然可以,但它会触发错误。

显示的第一个错误是: 输入行太长

“命令的语法不正确。”

有时它会显示一个可能更相关的错误:

输入行太长

你知道如何在不触发任何错误的情况下用更多的字符编写我的命令吗?

【问题讨论】:

  • 您可以尝试将您的-e 'controls...' 文件列表移动到项目或配置文件中
  • 另外,虽然它不会让你获得很多额外的字符,15,你可以,就像我在上一个回答中所做的那样,使用-p 代替--project-o 代替--out-f 代替--format

标签: batch-file jslint tslint


【解决方案1】:

首先,我会将所有文件定义为一个变量,应该解决您的“行输入太长”。至于“语法不正确”,也许尝试为它找到某种语法检查器......?

【讨论】:

  • 不,Input line is too long 错误检查是在变量展开后完成的
【解决方案2】:

命令行的最大长度约为 8191 个字符,根据您的解释,我了解到您刚刚到达那里。

我在您的示例中看到您经常引用 controls 子目录,所以我的第一个建议是:转到该子目录,并相应地调整您的命令,例如:

..\tslint -c ../../tslint.json --project ../tsconfig.json --out ../output.txt --format msbuild ^
 -e '../**/js/default.ts'  ^
 -e 'folder1/file1.ts' ^
 -e 'folder1/file2.ts' ^
 -e 'folder2/file1.ts' ^
 -e 'folder2/file2.ts' ^
 -e 'folder2/file3.ts' ^
   ...
   ...
 -e 'folder56/file8.ts' ^

(从大多数-e 开关中删除controls 目录应该会使您的命令少于8191 个字符)

【讨论】:

  • 谢谢,这是一个很好的答案,但就我而言,我有很多不同的文件夹
猜你喜欢
  • 2022-12-30
  • 2010-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多