0
@echo off
set a="%USERPROFILE%\Desktop\Desktop BU\%CurrentDate%"
For /F "tokens=1-5 delims=/-" %%A in ('Date /t') do (SET CurrentDate=%%A%%B%%C)
::echo hi
mkdir "%USERPROFILE%\Desktop\Desktop BU\%CurrentDate%"
::echo dir made
dir %USERPROFILE%\Desktop\ /S /B > %TEMP%\files.txt
::echo done
For /F %%A in (%TEMP%\files.txt) do move %%A "%USERPROFILE%\Desktop\Desktop BU\%CurrentDate%\"
del %TEMP%\files.txt

上記のスクリプトでひどい時間を過ごしています:-適切な日付でフォルダをうまく作成します-一時的にファイルを作成し、デスクトップのリストからの出力をリダイレクトします-しかしその後、エラーが発生します。指定されたパスが見つかりませんでした。多くのことを試しましたが、機能しませんでした。デスクトップ内のファイルとフォルダをデスクトップ内のフォルダBACKUPに移動する方法を教えてください。デスクトップがきれいに見えるようにします。また、一部のアイテムの移動を除外したいと思います。

4

1 に答える 1

0

forステートメントを次のように変更してみてください。

For /F "usebackq tokens=*" %%A in ("%TEMP%\files.txt") do move "%%A" "%USERPROFILE%\Desktop\Desktop BU\%CurrentDate%\"

また、現在の方法では、宛先ディレクトリの末尾にスペースがあり、デスクトップ BU をそれ自体に移動しようとします。最後に、dirコマンドで /s スイッチを使用する必要はありません。ディレクトリを移動すると、いずれにしてもそのすべての子が移動するからです。代わりにこれを試してください:

@echo off
setlocal
set CurrentDate=%date:~0,2%%date:~3,2%%date:~6,4%
set desktop=%USERPROFILE%\Desktop
dir "%desktop%" /B | find /v "Desktop BU"> "%TEMP%\files.txt"
mkdir "%desktop%\Desktop BU\%CurrentDate%" 2>NUL
For /F "usebackq tokens=*" %%A in ("%TEMP%\files.txt") do move "%desktop%\%%A" "%desktop%\Desktop BU\%CurrentDate%\"
del "%TEMP%\files.txt"

または、中間を必要としない別の方法を次に示しますfiles.txt

@echo off
setlocal
set CurrentDate=%date:~0,2%%date:~3,2%%date:~6,4%
set desktop=%USERPROFILE%\Desktop
mkdir "%desktop%\Desktop BU\%CurrentDate%" 2>NUL
for /f "tokens=*" %%A in ('dir "%desktop%" /b ^| find /v "Desktop BU"') do (
    move "%desktop%\%%A" "%desktop%\Desktop BU\%CurrentDate%\"
)
于 2013-02-12T15:09:06.483 に答える