2016-08-30 1 views
1

テキストファイルに.batファイルから別のものを書き込もうとしています.1つの引用符を挿入しようとするたびに、"を入力すると、 。それは出力ファイルに"シンボルが欠落しているので、ここで のように見える私がしようとしているものです:Windowsのコマンドラインまたはバッチからファイルにシンボルを入力しないでください

echo ' " '>> file.txt 

我々は単にCLI

echo ' " '> file.txt 
からそれをしようとした場合それも動作しません。

私は同じ私を持っていたMinGWのprintfechoのssue。 ここで何が間違っていますか?

答えて

2

それらを文字通り扱うには、escape some special charactersが必要です。特に、"double quote toggles the quote flag, if the quote flag is active, the following special characters are no longer special: ^&|<>()

==> echo ' " '>> file.txt 
' " '>> file.txt 

==> type file.txt 
The system cannot find the file specified. 

==> echo ' ^" '>> file.txt 

==> type file.txt 
' " ' 

次のスクリプトでは、ECHOコマンドのいくつかのエスケープルールを示しています。 Delayed Expansionが無効か有効である場合は、別の出力(およびキャレット感嘆符のルールを)注意:

@cls 
@setlocal disabledelayedexpansion 
@Call :ouputOnly 
@endlocal 
@Echo . 
@setlocal enabledelayedexpansion 
@Call :ouputOnly 
@endlocal 
@GOTO :eof 
:ouputOnly 
@Echo ^@ - At Symbol: be less verbose 
@Echo ^~ - Tilde: Parameter Expansion as in Call subroutines, FOR loops etc. 
@Echo ^& - Single Ampersand: used as a command separator 
@Echo ^&^& - Double Ampersand: conditional command separator (if errorlevel 0) 
@Echo ^|^| - Double Pipe: conditional command separator (if errorlevel ^> 0) 
@Echo ^:^: - Double Colon: alternative to "rem" for comments outside of code blocks 
@Echo ^^ - Caret: general escape character in batch 
@Echo ^" - Double Quote: surrounding a string in double quotes 
@Echo  escapes all of the characters contained within it 
@Echo ^() - Parentheses: used to make "code blocks" of grouped commands 
@Echo %% - Percentage Sign: are used to mark three of the four variable types 
@Echo ^^! - Exclamation Mark: to mark delayed expansion environment variables ^^!var^^! 
@Echo ^* - Asterisk: wildcard matches any number or any characters 
@Echo ^? - Question Mark: matches any single character 
@Echo ^. - Single dot: represents the current directory 
@Echo ^.. - Double dot: represents the parent directory of the current directory 
@Echo ^\ - Backslash: represent the root directory of a drive dir ^\ 
@Echo ^| - Single Pipe: redirects the std.output of one command 
@Echo  into the std.input of another 
@Echo ^NUL (File like device): is like a bottomless pit 
@Echo ^CON (File like device): is a file like device that represents the console 
@Echo ^> - Single Greater Than: redirects output to either a file or file like device 
@Echo ^>^> - Double Greater than: output will be added to the very end of the file 
@Echo ^< - Less Than: redirect the contents of a file to the std.input of a command 
@Echo  Stream redirection: regarding the less and greater than symbols 
@echo caret^^  "caret^" 
@echo caret^^^^ bang^^! "caret^^ bang^!" 
@exit /B 
@rem based on (dead link nowadays) http://judago.webs.com/batchoperators.htm 
関連する問題