1

我想从我正在运行的批处理文件中创建另一个文件输出,这意味着原始内容在其中。在这个批处理文件中,它会执行一段时间或 for 循环,直到找到“结束”或我在内容末尾添加的任何唯一单词。

我不想简单地复制文件(包含重要内容),因为这会暴露信息。然后通过批处理调用文件来运行它。

code:
-start of batch
-check if the file a.txt exist del a.txt
-starts to create the a.txt file

>start of content:
>"the quick brown fox jump over the lazy dog"
>lynx: unique word
>end of content

-writes the content to a.txt using for loop or while until it finds the unique word
-runs the a.txt file
-deletes the a.txt file
-exit

希望有人可以提供帮助。谢谢!或者,如果有人可以提出更好的方法来做到这一点。我会很感激

4

2 回答 2

0

for 命令本身的行将需要引号。

For 循环工作正常,直到它们碰到包含引号的行,然后一切都变成奶油冻......

你不能从这里到达那里。

也许改用vbscript?

于 2012-09-27T03:39:20.037 回答
0
@echo off
setlocal enabledelayedexpansion
if exist a.txt del a.txt

copy nul a.txt > nul                      & :: Not needed, but in your specs

set line[1]=This is what you asked for.
set line[2]=Not really the best method.
set line[3]=But it will work.
set line[4]=
set line[5]=linux
set line[6]=[end]

for /l %%i in (1,1,1000) do (
  if     "!line[%%i]!"=="linux" goto :end
  if     "!line[%%i]!"=="[end]" goto :end
  if     "!line[%%i]!"=="" echo.>>a.txt
  if NOT "!line[%%i]!"=="" echo !line[%%i]!>>a.txt
)

:end
:: Broken Out Of Loop

ren a.txt a.bat
call a.bat
del a.bat

使用该line[n]方法相当浪费内存,我建议将数据从一个文件移动到另一个文件。

于 2012-09-27T07:30:51.090 回答