2013-02-12 41 views
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 

有一个艰难的时期与上面的脚本: - 它与正确的日期 很好地创建该文件夹 - 创建的文件temp并重定向桌面上的列表中的输出 - 但在此之后会出现错误。指定的路径找不到 我尝试了很多东西,但它不工作。您可以让我知道如何将桌面中的文件和文件夹移动到桌面上的文件夹BACKUP中。这样我的桌面看起来很干净。我还想排除一些项目被移动。得到错误,同时从桌面清理所有文件和文件夹并将其移动到备份文件夹中的桌面

+0

获取错误系统无法找到文件specified.please帮助 – mishra1010 2013-02-12 13:53:00

回答

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%\" 
) 
+0

非常感谢它的工作完美。我发现了我犯的错误,但是我有一个疑问,当我使用dir/s/b时,它没有使用完整路径。我不明白为什么..所以我必须给%桌面%\ %% a .. – mishra1010 2013-02-13 07:38:14

+0

%date:〜0,2 %% date:〜3,2 %% date:〜6.4% - This解决了日期的目的。我发现我最近使用的代码造成了这个问题。这就是为什么我得到错误,无法找到指定的路径。有了这个日期格式,它工作正常。非常感谢您的帮助 – mishra1010 2013-02-13 08:59:05

+0

该脚本在Windows 7中工作正常,但不能在Windows XP中工作。请帮忙解决XP的问题 – mishra1010 2013-02-13 11:34:30

相关问题