【问题标题】:problem with the set command in a batch file! please help批处理文件中的 set 命令有问题!请帮忙
【发布时间】:2011-05-20 08:14:44
【问题描述】:

编辑: 这是 stringparsing.bat 文件的链接,以防其他文件不适合您! http://www.drivehq.com/file/DF.aspx?sesID=yycd31uaiezsvh3qrcdzkk45&isGallery=&share=&shareID=0&forcedDownload=true&fileID=618297825

EDIT#2: 我怀疑是问题原因的代码 sn-p 是:

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)的内容找到文本文件,但是我对其进行了测试并且可以完成,但不是在我的程序中......


好吧,我对我创建的同一个批处理文件(stringparsing.bat)提出了 3 个不同的问题,其他两个问题的链接可以在这里找到:

"access denied" error message for a text file i just made?

首先,将文本文件中的多行设置为一个变量时存在问题,现在已修复。然后出现错误消息,因为我试图重定向到已修复的隐藏文件。现在问题出在 set /p 命令和一个变量 (%name%) 上。这是我的问题的解释(从上面链接的页面底部引用)

“我遇到了一个问题....我修复了拒绝访问错误,但是“windows 找不到指定的文件”错误确实令人困惑,我在普通命令行中对其进行了测试,” type frenchy.txt" 显示我创建的文本文件的内容,"set /p var=%name%.txt" 显示错误。但是在那之后,我输入了"echo %name%" 并显示了内容文本文件。所以问题在于使用(或误用)带有变量的 set /p 命令。"

如果您需要更多信息,我强烈建议您点击我之前问题的链接。我开始了一个新问题,因为没有人在评论中回复它(可能是因为它是一个完全不同的问题,因此值得一个单独的问题。)此外,我标记为“最佳答案”的建议解决方案(绿色复选标记)不再适用于我,因为不断出现错误“windows 找不到指定的文件”...我已将其缩小到 set /p 命令以及 %name% 变量是错误消息的原因但似乎无法理解我做错了什么......在这篇文章的最后,我会添加一个指向我当前版本的“stringparsing.bat”文件的链接......或者如果你更愿意只查看它的脚本(请注意,这不是它的最新副本)您可以点击顶部的链接转到我之前的问题(我在那里发布了脚本)我已经在这个程序上工作了很长一段时间,但只发现了更多和更多的问题。希望这将是最后一个!

这是我当前的 stringparsing.bat 文件副本的链接: http://uploading.com/files/183m5b63/stringparsing.bat/

如果您发现任何其他问题,请告诉我如何解决它们!

提前致谢!

【问题讨论】:

  • 你能创建一个小样本批处理文件来显示你遇到的问题吗?我在下载文件时遇到问题,我无法在您链接到的另一个问题中归档“set /p var=%name%.txt”行。
  • 我在这篇文章的顶部添加了一个指向该文件的新链接,另外,只需转到我的另一个问题,您就会在那里找到完整的代码,只需复制该脚本并尝试一下你会看到错误(或者你应该看到)。
  • 如果加上sn-p并显示有问题的行会更简单
  • 如果您在格式化时遇到问题,可以将其添加为答案,但将其标记为社区 wiki。这将允许分数 >100 的其他人正确格式化。
  • 当程序创建“language_file.txt”,然后尝试将其内容设置为变量(%name%),然后尝试以该变量为其查找文件时,就会出现问题姓名。例如:

标签: variables string command-line batch-file


【解决方案1】:
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%

这显示了 frenchrapidement,正如预期的那样。

我想你的问题是 echo %name% > Language_File.txt 中语言名称后面的空格 因此,您将尝试打开一个名为“french .txt”的文件(实际上只搜索“french”)。

如果您遇到问题,最好将问题减少到最少的代码。 然后启用 echo on

总是一个好主意

【讨论】:

  • 你说得对,这是我当前的问题,(文件名中 %name% 变量之前的空格)但是我已经尝试了所有方法但无法修复它,你能在我的脚本中指出 ount它到底在哪里,我该如何解决?谢谢!
  • 我知道你的回答有效,谢谢!它总是最难发现的最简单的错误......
猜你喜欢
  • 2015-09-12
  • 2013-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-26
  • 2014-04-27
  • 2020-09-10
相关资源
最近更新 更多