2016-02-26 13 views

回答

1
@ECHO OFF 
SETLOCAL ENABLEDELAYEDEXPANSION 
SET "sourcedir=U:\sourcedir\t w o" 
SET "destdir=U:\destdir" 
PUSHD "%sourcedir%" 
FOR %%a IN (*) DO (
IF /i "%%a" geq "a" IF /i "%%a" lss "h" ECHO(MOVE "%sourcedir%\%%a" "%destdir%\A-G\" 
IF /i "%%a" geq "h" IF /i "%%a" lss "u" ECHO(MOVE "%sourcedir%\%%a" "%destdir%\H-T\" 
IF /i "%%a" geq "u" (
    IF /i "%%a" lss "z" (ECHO(MOVE "%sourcedir%\%%a" "%destdir%\U-Z\" 
) ELSE (
    SET "name=%%a" 
    IF /i "!name:~0,1!"=="Z" ECHO(MOVE "%sourcedir%\%%a" "%destdir%\U-Z\" 
) 
) 
) 
popd 

GOTO :EOF 

你需要改變的sourcedirdestdir設置以適合你的情況。

出於測試目的,所需的COPY命令僅僅是ECHO驗證命令是否正確後,將ECHO(COPY更改爲COPY以實際複製文件。追加>nul來抑制報告消息(例如,1 file copied

困難的部分是比較名稱與(大於Z的東西)。不幸的是,[{都不適用於這個位置。 if方面都[{爲低於A - 甚至NUMERICS ...

因此,對於開始z文件名,採用特定的測試。

+0

難道你不能在這裏使用'leq「z」'? –

+0

@DennisvanGils:不需要考慮「z.txt」。這比'z'大。根據ASCII,'['應該是'Z' + 1和'{'是'z' + 1。根據'cmd','{'和'['小於'0' ...令人驚訝的是,但是真的... – Magoo

+0

有些人忘恩負義。從我這裏+1 – LotPings

相關問題