Batch file 为什么这个简单的回音不起作用?

Batch file 为什么这个简单的回音不起作用?,batch-file,Batch File,所以,我在玩分裂弦的游戏时遇到了这样的情况: for /f "tokens=1" %%c in ("A B C") do ( set s=%%c echo s: %s% ) pause 我希望它能打印: s: A 但它实际上打印: s: 为什么? 我想做的是:我有一些文件夹的名称有一个默认位置(id名称,e:123 ABC),在每个文件夹中我有一个文件需要复制,但每个文件夹中的文件名不同,因此我需要获得没有id的文件夹名,我想应该做的是: cd C:\MyFolders paus

所以,我在玩分裂弦的游戏时遇到了这样的情况:

for /f "tokens=1" %%c in ("A B C") do (
  set s=%%c
  echo s: %s%
)
pause
我希望它能打印:

s: A
但它实际上打印:

s: 
为什么?

我想做的是:我有一些文件夹的名称有一个默认位置(id名称,e:123 ABC),在每个文件夹中我有一个文件需要复制,但每个文件夹中的文件名不同,因此我需要获得没有id的文件夹名,我想应该做的是:

cd C:\MyFolders
pause
for /d %%a in (*) do (
  set name=%%a
  for %%b in ("%%a\*.txt") do (
    for /f "tokens=1" %%c in ("%%a") do (
      set id=%%c
      set name_without_id=%name%:%id% =
      echo new file name: %name_without_id%
    )
  )
)
pause

我认为这可能是我的代码中的一个错误,所以我做了第一个,非常简单,但我没有得到我期望的结果。

请阅读我使用
SETLOCAL EnableDelayedExpansion时可能出现的重复情况。
程序说他无法转到
C:\MyFolders
,因为它不存在,虽然有,但如果没有上下文,这样的评论是没有帮助的。编辑您的问题以包括所做的更改和错误消息。请尝试使用
cd/D“C:\MyFolders”
。。。