Как добавить символ за строкой в ​​TXT-файле в пакетном режиме (обратите внимание: длина строки составляет 10000 символов, которая достигла предела переменной пакета)? - PullRequest
0 голосов
/ 07 июля 2019

Я хочу добавить символ рядом со строкой в ​​TXT-файле, не используя команду FOR / F для копирования всего содержимого / строки в TXT-файле, поскольку содержимое внутри TXT-файла имеет длину 10000 символов, и это достигнет предела переменной. Как мне это закодировать?

Я пытался сделать это с echo.%var%>>output.txt

Это должно быть в файле TXT:

abcdefghijklmnopqrstuvwxyz etc. (10000 chars long)

Не это:

a
b
c
d
e
f
g
h
etc.

1 Ответ

0 голосов
/ 08 июля 2019

Использование языка сценариев приведет к большим накладным расходам.Исполняемый файл сценариев, будь то PowerShell, Python, Perl или что-либо еще, должен загружаться при каждом вызове.Вот пример использования PowerShell.

SET "VAR=a"
powershell -NoLogo -NoProfile -Command ^
    "'%%s' | Out-File -FilePath 'output.txt' -Append -NoNewline"
SET "VAR=b"
powershell -NoLogo -NoProfile -Command ^
    "'%%s' | Out-File -FilePath 'output.txt' -Append -NoNewline"

Не ясно, как из вашего вопроса создается переменная VAR.Я бы предположил, что это какая-то форма цикла или подпрограмма CALL.

SET "VAR=a b c d e f g h i j k l"
FOR %%s IN (%VAR%) DO (
    powershell -NoLogo -NoProfile -Command ^
        "'%%s' | Out-File -FilePath 'output.txt' -Append -NoNewline"
)

Чтобы устранить накладные расходы, необходимые для многократной загрузки языка сценариев, вы можете рассмотреть возможность создания временного файла, содержащего несколько строк.Затем один раз вызовите язык сценариев, чтобы получить окончательный выходной файл без перевода строки.

IF EXIST "appendtemp.txt" (DEL "appendtemp.txt")
SET "VAR=a b c d e f g h i j k l"
FOR %%c IN (%VAR%) DO (ECHO>>appendtemp.txt %%c)

powershell -NoLogo -NoProfile -Command ^
"Get-Content -Raw -Path 'appendtemp.txt' |" ^
    "ForEach-Object { $_ -replace \"`r`n\",'' } |" ^
    "Out-File -FilePath 'output.txt'"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...