Пример, используя Guava:
File to = new File("C:/test/test.csv");
for (int i = 0; i < 42; i++) {
CharSequence from = "some string" + i + "\n";
Files.append(from, to, Charsets.UTF_8);
}
Ваш пример set A="qwerty" && echo %A%
неверен. Переменные в приглашении cmd
/ пакетном файле расширяются один раз для каждой строки / команды:
==> set "A="
==> echo %A%
%A%
==> set A="qwerty" && echo %A%
%A%
==> echo %A%
"qwerty"
The [117 ] команда была впервые введена в MS-DOS 2.0 в марте 1983 года, в то время память и процессор были очень ограничены, и было достаточно расширения переменных один раз на строку .
blockquote>Обходной путь с использованием команды
CALL
:==> set "A=" ==> echo %A% %A% ==> set A="qwerty" && CALL echo %A% "qwerty"
Редактировать:
Для полноты картины следующий пакетный скрипт показывает механизм расширения в процентах и его комбинация с командой
CALL
подробно (примечание удвоило%
знаков процента в пакетном файлеCALL Echo %%_var%%
):@ECHO OFF SETLOCAL if NOT "%~1"=="" ECHO ON echo 1st: Set "_var=first" Set "_var=second" & Echo %_var% & CALL Echo %%_var%% echo 2nd: Set "_var=first" Set "_var=second" & CALL Echo %%_var%% & Echo %_var%
[1126 ] Выход,
echo OFF
:==> D:\bat\SO\55237418.bat 1st: first second 2nd: second first
Выход,
echo ON
:==> D:\bat\SO\55237418.bat on ==> echo 1st: 1st: ==> Set "_var=first" ==> Set "_var=second" & Echo first & CALL Echo %_var% first second ==> echo 2nd: 2nd: ==> Set "_var=first" ==> Set "_var=second" & CALL Echo %_var% & Echo first second first
До сих пор я обнаружил, что эти команды для правильной работы должны быть в разных сценариях и выполняться в определенном порядке. Итак, вот как это работает:
"scripts": {
"aaa": "set TMP=test && npm run bbb",
"bbb": "echo %TMP%"
}
npm run aaa
вывод: test
Но этот не будет работать:
"scripts": {
"aaa": "set TMP=test",
"bbb": "npm run aaa && echo %TMP%"
}
npm run bbb
вывод: <just empty>
Похоже, что для поиска созданной переменной требуются две отдельные команды npm run
: переменная должна быть создана в первый npm run
и может быть найден во втором.