Чтобы изменить путь к папке moodledata
, просто измените путь в $CFG->dataroot
в config.php (находится в корне Moodle). После этого очистите папку cache
и установите права на запись для папки.
Я получил первый эмпирический ответ:
for /f %%s in (version.txt) do ...
работает просто великолепно, на каждом компьютере.
Это кажется for /f
работы с именем файла, не с любой DOS управляют как 'имя файла типа'.
Однако это не верно для компьютера всего моего клиента (на некоторых, 'имя файла типа' хорошо работает),
Если Вы хотите 15 (легкий?) точки ;-), можно оставить ответ на вопрос:
почему 'для/f' когда-то не работает ни с чем больше, чем имя файла. И почему это просто закрыло сеанс DOS?
Править: 3 года спустя barlop стоял перед аналогичной ситуацией, детализированной в вопросе"for /f
завершения cmd сразу запрашивают?". Его заключение было:
COMSPEC
действительно становился перечисленным при выполненииSET
+ENTER.
Так, я открыл окно переменных среды и виделCOMSPEC
не был перечислен под пользовательскими или системными переменными. Я добавил его к Системным переменным, запустил командную строку, и это, кажется, хорошо работает.
Этот поток на ss64 форуме, упомянутом Andriy M в его ответе на вопрос barlop, содержит детали.
Выход из оболочки в"
for
"цикл для завершения'dir
'(или безотносительно команды Вы попросили завершаться), требуетComSpec
быть приведенным в порядок для перезагрузкиcmd
окно.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\ComSpec=
%SystemRoot%\system32\cmd.exe
Относительно расширений команды существует возможность, которой CMD.EXE называют с/E:OFF так, чтобы расширения команды были отключены (даже при том, что включенный в реестре).
Если использование расширений команды окружает опции в сценарии, ВЫСОКО предложено сделать следующий прием в начале сценариев.
- Информация вставляется из http://www.ss64.com/nt/setlocal.html
SETLOCAL установит ERRORLEVEL, если дали аргумент. Это будет нуль, если один из двух допустимых аргументов будет дан и один иначе.
Можно использовать это в пакетном файле, чтобы определить, доступны ли расширения команды, с помощью следующей техники:
VERIFY errors 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 echo Unable to enable extensions
Это работает, потому что "ПРОВЕРЯЮТ, что ошибки" устанавливают ERRORLEVEL на 1, и затем SETLOCAL не сбросит значение ERRORLEVEL, если расширения не будут доступны (например, если сценарий работает в соответствии с command.com),
Если Расширения Команды будут пожизненно нетрудоспособны затем, то SETLOCAL ENABLEEXTENSIONS не восстановит их.
Случается так, что файл не имеет расширения, и таким образом cmd рассматривает его как каталог, который не существует?
Ожидайте..., могло случиться так, что у Вас есть апострофы вокруг имени файла? MS говорит, что filenamesets получают двойные кавычки, и литеральные строки получают апострофы.
for /F ["usebackqParsingKeywords"] {%% | %}variable in ("filenameset") do command [CommandLineOptions]
for /F ["usebackqParsingKeywords"] {%% | %}variable in ('LiteralString') do command [CommandLineOptions]
for /F ["usebackqParsingKeywords"] {%% | %}variable in (`command`) do command [CommandLineOptions]
Если, конечно, Вы не делаете это.
Можно использовать для/F логики синтаксического анализа на непосредственной строке, путем обертывания filenameset между круглыми скобками в одинарных кавычках (то есть, 'filenameset'). Filenameset рассматривают как одну строку входа из файла, и затем он анализируется.
Если расширения команды отключены, (набор), параметр к для команды должен быть файлом.
Если расширения команды включены, (набор), параметр к для команды может быть файлом, строкой или командой.
Расширения команды отключены на компьютере клиента, где 'набор' имени файла типа перестал работать.
Для получения информации о включении или отключении расширений команды, введите "cmd/?"