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”
。。。