1

ディレクトリ内の最新のファイルを、新しく作成したフォルダの場所に移動、切り取り、貼り付けする必要があります。このファイルは、私が権限を持っていない別のプログラムによって作成されています。新しいディレクトリの場所は、以下にコピーされたバッチファイルによって作成されます。私はコードサンプルから従うべきいくつかの基礎を見つけました。ピースを組み立てるのに少し問題があります。最新のファイルをディレクトリの場所から新しいディレクトリの場所に移動するにはどうすればよいですか?

:: Auto directory date batch (MMDDYYYY format)
:: First parses month, day, and year into mm , dd, yyyy formats and then combines to be DDMMYYYY
:: Setups %date% variable
:: @author Deepu Mohan Puthrote www.deepumohan.com
@echo off
FOR /F "TOKENS=1* DELIMS= " %%A IN ('DATE/T') DO SET CDATE=%%B
FOR /F "TOKENS=1,2 eol=/ DELIMS=/ " %%A IN ('DATE/T') DO SET mm=%%B
FOR /F "TOKENS=1,2 DELIMS=/ eol=/" %%A IN ('echo %CDATE%') DO SET dd=%%B
FOR /F "TOKENS=2,3 DELIMS=/ " %%A IN ('echo %CDATE%') DO SET yyyy=%%B
SET date=%yyyy%%mm%%dd%
echo New folder name %date%
MKDIR %date%

ファイルを新しいディレクトリに移動しようとしたため、最初の.batに追加してファイルを新しいディレクトリに移動しましたが、エラーが発生しました

FOR /F "delims=" %%I IN ('DIR . /B /O:-D') DO COPY %%I <<%date%>>
pause

<<現時点では予期しない

4

2 に答える 2

3

これを試して:

for /f "tokens=*" %%i in ('dir /od /b /a-d') do set "file=%%~i"
move "%file%" "%date%"

ところで:バッチ変数(日付)にデフォルトの環境変数名を使用しないでください。

于 2013-03-14T22:01:23.883 に答える
2

あなたはあなたのFORループで正しい軌道に乗っています。MOVEではなくCOPY実行し、最初の項目を処理した後でループを終了するだけです。

FOR /F "delims=" %%I IN ('DIR . /B /O:-D /A-D') DO (
    MOVE "%%I" "%date%"
    GOTO :EOF
)

ディレクトリを除外するためにを追加/A-Dし、とを削除しました。(そもそもなぜそこにいたのかわかりません。)DIR<<>>

于 2013-03-14T18:08:02.200 に答える