0

このバッチ ファイルは、ping 192.168.1.1 -n 1 -w !thyme! をリダイレクトするサブメニュー 4 を除いて正常に動作するように作成しました。echo ping 192.168.1.1 -n 1 -w !thyme!>NUL to %dir101% の代わりに NUL に

@echo off & SETLOCAL EnableDelayedExpansion
title TXTanimation
set dir101=C:\USers\Jake\Desktop\file.bat
goto jakeinc
echo Lets make a text animation
pause
set /p dir101=where will the .bat be saved:
:jakeinc
echo @ECHO OFF > %dir101%
echo: >> %dir101%
:menu
echo 0=Edit important information
echo 1=Display .txt
echo 2=Play sound
echo 3=Close sound player
echo 4=Add nessicary wait between .txt
echo 5=Label point
echo 6=Edit variable
echo 7=Goto point
echo 8=Create IF sentence
echo 9=End it
Set /p choose=which one:

If '%choose%'=='0' (
SEt /p title=What is the title
:LOL101
set /p color=what color do you want type test to experiment with the colors
If '!color!'=='test' goto tester
goto model
:tester
SEt /p test=Please give hexadecimal number type exit to leave:
if '!test!'=='exit' goto LOL101
color !test!
goto tester
:model
echo title %title% >> %dir101%
echo color %color% >> %dir101%
goto menu
)

If '%choose%'=='1' (
set /p dir=what is the dir of your .txt:
)
If '%choose%'=='1' (
echo cls >> %dir101%
echo type %dir% >> %dir101%
goto menu
)
If '%choose%'=='4' (
SEt /p thyme=How much milliseconds 250 is usual:
echo ping 192.168.1.1 -n 1 -w !thyme!>NUL >> %dir101%
goto menu
)
If '%choose%'=='9' (
echo Thanks for making
pause
exit /b
)

Yeh それは大きなプログラムですが、私のエラーは本当に小さいです。テンプレートを入力して、変数を挿入できますか? しかしecho ping 192.168.1.1 -n 1 -w !thyme!>NUL >> %dir101%、>NUL をリダイレクトするように指定する必要があります

4

2 に答える 2

1

リダイレクトとして解釈されるのではなく、エコーされるように、リダイレクトシンボルをエスケープする必要があります。

echo ping 192.168.1.1 -n 1 -w !thyme! ^>NUL >>%dir101%

警告:サブメニュー0は記述どおりに機能しますが、将来的に問題を引き起こす可能性のある悪い習慣を確立している可能性があります。通常、括弧で囲まれたコードブロック内にラベルを配置しないでください。読み取り(Windowsバッチ)問題を引き起こす可能性のある例については、ifブロック内で非常に奇妙な動作をします。選択した回答は、問題を引き起こす可能性がある理由を説明しています。

于 2012-04-13T17:51:29.950 に答える
1

これらのコマンドを別のバッチにエコーしようとするときは、これらのコマンドを適切にエスケープする必要があります。これを試して:

echo ping 192.168.1.1 -n 1 -w ^!thyme^!^>NUL >> %dir101%

%dir101%これはあなたのバッチにこれを書き込みます:

ping 192.168.1.1 -n 1 -w *value_of_thyme_variable* > NUL

^バッチでほとんどの機能をエスケープします。参考までに: これは変数値では機能しません。のように変数値%をエスケープする必要がある場合は、次のように実行できますが、ご覧のとおり、上記の変数値に対しては機能します。%%test%%%test%%!

于 2012-04-13T17:30:51.890 に答える