【问题标题】:Batch new line issue批量换行问题
【发布时间】:2014-01-19 22:24:15
【问题描述】:

我有两个文件,shell.batkey.batshell.bat 调用key.bat 和一个名为etc 的目录中的一些其他文件。 key.bat向用户请求一个ESSID,在etctypes的内容中找到对应的文件,这是请求的ESSID的key。之后,再次调用shell.bat,在调用文件key.bat 的内容之后出现shell 提示符server:wifi$。有关如何解决此问题的任何想法?

shell.bat:http://www.mediafire.com/view/skrs8e728023f6f/shell.bat

@echo off
set /p cmd=server:wifi$ 
if exist programs\%cmd%.bat goto cmd
goto fail

:cmd
call programs\%cmd%.bat
call shell.bat

:fail
echo Command "%cmd%" not found.
call shell.bat

key.bat: http://www.mediafire.com/view/rm1v6czi3f4844c/key.bat

@echo off
set /p essid=ESSID: 
if exist etc\%essid%.txt goto key
goto fail

:fail
echo Key does not exist.
echo Add key with "mkkey".
goto :eof

:key
type etc\%essid%.txt

【问题讨论】:

  • 您需要发布一些代码,以便我们了解它是如何工作的。不要只发布文件的链接。
  • @Smik Games,你说shell.bat 正在调用key.bat,但在第一个示例中似乎shell.bat 正在调用shell.bat
  • %cmd%.bat 文件在做什么?他们在调用 key.bat 吗?因为没有从 shell.bat 调用 key.bat。
  • “修复”什么?您的代码反复调用 shell.bat 显示您的 server:wifi$ - 您想要它做什么?最终,它会用完空间而失败,但这需要很长时间。从您向我们展示的内容来看,如果您使用key 响应服务器:wifi$,那么它将提示您输入essid,然后显示该文件的内容或给出添加新密钥的说明。呃 - 你期待什么?它没有做什么你期望它做的事情?它在做什么你没想到它会做什么?你想做什么而不是它正在做的事情?

标签: windows shell batch-file cmd


【解决方案1】:

尝试此修改,然后告诉我们是否仍然存在问题,并进一步描述。

shell.bat

@echo off
set "cmd="
set /p cmd=server:wifi$ 
if exist "programs\%cmd%.bat" goto cmd
goto fail

:cmd
call "programs\%cmd%.bat"
%0

:fail
echo Command "%cmd%" not found.
%0

Key.bat

@echo off
set "essid="
set /p essid=ESSID: 
if exist "etc\%essid%.txt" goto key
goto fail

:fail
echo Key does not exist.
echo Add key with "mkkey".
goto :eof

:key
type "etc\%essid%.txt"

【讨论】:

  • 感谢您理解我的问题。这完美地解决了它。
  • 很高兴为您提供帮助。我还添加了一组双引号来支持长文件名。
猜你喜欢
  • 2010-11-19
  • 2023-03-10
  • 2023-03-08
  • 2011-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多