2016-08-30 36 views
1

我試圖從一個.bat文件寫入不同的東西到一個文本文件在每一個嘗試插入一個報價"它導致避免這個命令,它看起來像,因爲它缺少"在輸出文件中的符號 這裏就是我要做的。丟失從Windows命令行或批處理引號「符號到文件

echo ' " '>> file.txt 

,它甚至沒有工作,如果我們簡單地從CLI

echo ' " '> file.txt 
試試吧

我有同樣的我來自MinGW的printfecho。 這裏有什麼問題?

回答

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 
相關問題