проблема с командой set в командном файле!пожалуйста помоги - PullRequest
0 голосов
/ 05 декабря 2010

РЕДАКТИРОВАТЬ: Вот ссылка на файл stringparsing.bat, если другой не работает для вас!http://www.drivehq.com/file/DF.aspx?sesID=yycd31uaiezsvh3qrcdzkk45&isGallery=&share=&shareID=0&forcedDownload=true&fileID=618297825

РЕДАКТИРОВАТЬ # 2: Фрагмент кода, который, я подозреваю, является причиной проблемы:

set /p line1= :
echo %line1% >> %name%.txt 2> error_log.txt


echo %name% > Language_File.txt
attrib +h Language_File.txt
set /a foo+ =1
)
echo.
echo ==========================================================

goto LOAD



:LOAD
set /a foo+ =1
IF %foo%== 2 goto loadexternal
goto LOAD23

:loadexternal
echo.
echo language file is loading now!
IF Exist Language_File.txt attrib -h Language_File.txt 
set /p name=<Language_File.txt

Программа (по некоторым причинам)не могу найти текстовый файл на основе содержимого другого текстового файла (language_file.txt), однако я протестировал его, и это можно сделать, но только не в моей программе ....


Хорошо, так что язадал 3 разных вопроса об одном и том же пакетном файле, который я создал (stringparsing.bat), ссылку на два других вопроса можно найти здесь:

сообщение об ошибке «отказано в доступе» для текстового файла, который я только что сделал?

Итак, сначала возникла проблема с установкой нескольких строк в текстовом файле в одну переменную, которая теперь исправлена.Затем появились сообщения об ошибках, потому что я пытался перенаправить на скрытый файл, который исправлен.Теперь проблема заключается в команде set / p вместе с переменной (% name%).Вот объяснение моей проблемы (приведено в нижней части страницы в приведенной выше ссылке)

"У меня возникла проблема ... Я исправил ошибку отказа в доступе, однако это«Windows не может найти указанный файл» ошибка действительно сбивает с толку, я проверил ее в обычной командной строке, «type frenchy.txt» отображает содержимое созданного мной текстового файла, «set / p var =% name% .txt"отображает ошибку. Однако после этого я набрал" echo% name% ", и он отобразил содержимое текстового файла. Таким образом, проблема заключается в использовании (или неправильном использовании) команды set / p с переменной."

Если вам нужна дополнительная информация, я настоятельно рекомендую вам перейти по ссылке на мои предыдущие вопросы.Я начал новый вопрос, потому что никто не ответил на него в комментарии (возможно, потому что это была совершенно другая проблема и поэтому заслуживала отдельного вопроса.) Кроме того, предлагаемое решение, в котором я отметил «лучший ответ» (с зеленымгалочка) больше не работает для меня из-за ошибки «окна не могут найти указанный файл», которая продолжает появляться ... Я сузил его до команды set / p вместе с переменной% name%, являющейся причиной сообщения об ошибкено не могу понять, что я делаю не так ... в конце этого поста я добавлю ссылку на мою текущую версию файла "stringparsing.bat" ... Или, если вы предпочитаете просто посмотреть скрипт для этого (обратите внимание, что это не последняя его копия) вы можете перейти по ссылке вверху, чтобы перейти к моему более раннему вопросу (у меня там есть сценарий), я работал над этой программой довольно давно, но нашел только больше ибольше проблем.Надеюсь, это будет последний!

Вот ссылка на мою текущую копию файла stringparsing.bat: http://uploading.com/files/183m5b63/stringparsing.bat/

Если вы видите какие-либо другие проблемы, пожалуйста, дайте мне знать, как я могу их исправить!

Заранее спасибо!

1 Ответ

1 голос
/ 06 декабря 2010
set lang=french
echo rapidement > %lang%.txt
echo %lang%> language.txt

rem ....

set /p name=< language.txt
echo %name%
set /p vocable=< %name%.txt
echo %vocable%

Это отображает french и rapidement , как и ожидалось.

Я полагаю, что ваша проблема заключается в пробеле позади имени языка в echo%name%> Language_File.txt Поэтому вы попытаетесь открыть файл с именем "french .txt" (в действительности ищется только "french").

Если у вас есть проблемы, это всегдахорошая идея, чтобы свести проблему к минимуму кода.И тогда всегда полезно включить echo на

...