Problem with 'do <var> /L ....' and spaces

Jul 7, 2008
20
1
I am using the do command with literal strings (/L) to automate some tasks. The problem I am having is that do insists on breaking up literal strings with embedded spaces, even if they are inside quotes ("") or %@quote[]. A simple example:

do v /L abc "def ghi" jkl (echo %v)

results in 4 echo'd lines of abc, "def, ghi", jkl (and the same if I use %@quote[def ghi]).

The documentation states that it treats everything in the stringset after /L as string literals, so I would expect quoted strings to be honored.

version: TCC 15.01.52 x64 Windows 7 [Version 6.1.7601]
 

Charles Dye

Super Moderator
Staff member
May 20, 2008
4,469
88
Albuquerque, NM
prospero.unm.edu
Working as designed (but no, I don't like this behavior either.)

You could work around it by reading your strings from a here-document instead:

Code:
@echo off

( do v in @con: ( echo %v ) ) <<- endtext
  abc
  def ghi
  jkl
endtext
 
Jul 7, 2008
20
1
Working as designed (but no, I don't like this behavior either.)
Thanks for the workaround -- I had already done something similar but hadn't thought about using a here-document.

As for working as designed ... maybe. But I don't believe it is working as documented. The manual reads "once for every string literal in stringset" and a string literal is almost universally accepted as any sequence of characters enclosed in quotes. This behavior is definitely unexpected.
 

rconn

Administrator
Staff member
May 14, 2008
12,365
150
I am using the do command with literal strings (/L) to automate some tasks. The problem I am having is that do insists on breaking up literal strings with embedded spaces, even if they are inside quotes ("") or %@quote[]. A simple example:

do v /L abc "def ghi" jkl (echo %v)

results in 4 echo'd lines of abc, "def, ghi", jkl (and the same if I use %@quote[def ghi]).

The documentation states that it treats everything in the stringset after /L as string literals, so I would expect quoted strings to be honored.

WAD - quotes are meaningless in strings; they only have a special meaning when the argument is a filename.

If you want to use quotes as delimiters, use the /T option. For example:

Code:
do v in /T"^"" /L abc "def ghi" jkl (echo %v)
 

Charles Dye

Super Moderator
Staff member
May 20, 2008
4,469
88
Albuquerque, NM
prospero.unm.edu
If you want to use quotes as delimiters, use the /T option. For example:

Code:
do v in /T"^"" /L abc "def ghi" jkl (echo %v)

That's not quite the same thing. The /T"^"" prevents spaces from being treated as delimiters, so you'll wind up with spaces at the beginning or the end of the value; and arguments won't be broken even at unquoted spaces. Perhaps:

Code:
do v in /T"," /L abc,def ghi,jkl ( echo %v )
 
Similar threads
Thread starter Title Forum Replies Date
Dick Johnson Weird Color Problem Support 8
fishman@panix.com Problem with 27.15 Support 2
M Problem with VSDevCmd.bat in VS 16.7.3 Support 0
R Problem with @INT[ value] in V26 Support 9
M Selecting test "off by one" problem in Take command Support 4
Alpengreis UTF-8 problem in TCC related to Python Support 7
K_Meinhard Small problem in german IDE 26 Support 3
B Problem with color in nested shells Support 1
Joe Caverly Problem creating and switching to a DESKTOP Support 9
vefatica Another popup problem Support 10
Alpengreis ffind dialog (/W) problem Support 4
Alpengreis [TCMD v25.00.24] Small space problem with the DE translation in Prefs-GUI Support 1
Alpengreis [TCMD v25.00.24] Problem with copy and paste and the # char via mouse in TCC Support 6
A Problem with functions @int @decimal and identifying Powershell as a shell. Support 12
B IF command problem in tcexit.btm Support 9
fishman@panix.com Problem at Startup of TCC Support 3
P Problem with SFTP copies Support 7
P Problem with FTP copies Support 10
Jay Sage Problem with Context Menu Copy+Paste+Run Key Assignment Support 7
R Problem with %_do_loop in nested do loops Support 2
fishman@panix.com New Problem with later Windows 10 Support 10
Peter Murschall A little problem with LEAVE and COMMENT Support 5
M Handling of %~I problem Support 4
WinLanEm FOR problem Support 18
K Problem With SCRPUT /u Support 3
vefatica What's TCMD's problem with ^e[0m? Support 13
Peter Murschall IDE: RTL with non-English resources-problem is back in Build 28 Support 4
rps Regex problem: \xnn not recognized as a hex character Support 0
rps PRIORITY LOW problem Support 1
old coot Regex problem: \xnn not recognized as a hex character Support 12
vefatica Another problem with build 22. Support 3
Alpengreis [23.x] Download-Problem Support 2
S Problem with " Support 3
C Problem navigating forums Support 11
x13 Problem listing repository files using DIR http(s)://... Support 8
Joe Caverly Problem with TEE in v22 Support 2
Alpengreis Problem with thousands delimiter and colors Support 17
M Take Command 18, migrating to another machine, license problem. Support 1
B TCC 21.01.50 Problem with ALIAS /r and SET /r Support 2
rps How to? @search problem Support 2
WinLanEm @SELECT problem Support 6
T Fixed Problem with use of Batch parameters in the IDE Support 1
Oz Solomon Problem with "list" Support 14
S V21.24 theme problem Support 2
Alpengreis Problem if command prompt is not legacy Support 4
Alpengreis TCMD.INI: The "super hidden" problem ... Support 6
G Odd problem - screen brightness Support 4
rps V20 In-process pipes problem Support 8
Alpengreis Again theme problem [v20.0.21]? Support 11
WinLanEm INPUT problem Support 1

Similar threads