我一直在使用一个很棒的小批量FOR循环来做一些繁琐的步骤,并希望修改它以做更多,但无法在任何示例中找到正确的方法。
以下是我现在所拥有的:
for / f“delims = *”%% i in(Move_Test.txt)确实移动 “E:\ 07-All_Books \ %% i”E:\ 08-SF_Books \> nul 2>& 1
我希望这种格式化有意义,但它确实有效。无论如何,文件“Move_Test.txt”包含作者姓名列表。该循环扫描“07-All_Books”目录并在该目录中查找匹配的文件夹名称。如果找到匹配项,则会将该文件夹移动到“08-SF_Books目录。
我需要做的是将其修改为类似的东西,但要进行单个字符比较。
文件“Move_Test.txt”现在只有字母A-Z,每行一个字母。
我希望循环:
我坚持做第一个字母的比较(大写或小写),然后把那个字母变量放到正确的移动文件夹中。
而且,如果有一种更简洁的方法来消除“Move_Test”文本文件,我当然也对此持开放态度。
答案 0 :(得分:0)
要检查第一个字母是否匹配,请将文件恢复为:
[letter]*
或者:
%%i*
对于你的情况。通配符*
将使程序在您提出的字母后查找每个字符。所以就你的代码而言:
for /f "delims=*" %%i in (Move_Test.txt) do move "E:\07-All_Books\%%i*" E:\08-SF_Books\ >nul 2>&1
另外,如果每行只有一个字符,我认为你不需要`“delims = *”。莫纳
答案 1 :(得分:0)
@ECHO OFF &SETLOCAL
FOR %%A IN (
A B C D E F
G H I J
K L M N
O P Q R
S T U V
W X Y Z
) DO (
ECHO MOVE "E:\07-All_Books\%%A*" "E:\08-SF_Books\Authors - %%A"
)
如果输出看起来不错,请删除echo
。