Arquivo em lote para copiar arquivos do local da área de trabalho para outro local?

0

Eu quero copiar / mover arquivos no Windows XP do desktop (uma pasta) para o meu documento (outra pasta), que foi criado pelo mesmo arquivo de lote na data atual no formato DD / MM / AAAA.

Isso está funcionando bem quando o arquivo .BAT está na pasta Desktop.

@echo off
set date="%date:~7,2%-%date:~4,2%-%date:~10,4%"
mkdir %date%
copy *.txt \%date%
pause

Agora, o que o .BAT está fazendo é criar a Pasta 18-01-2013 na área de trabalho e lidar com todos os arquivos .TXT nesta pasta.

Mas isso não está funcionando,

@echo off
set date="%date:~7,2%-%date:~4,2%-%date:~10,4%"
mkdir %USERPROFILE%\My Documents\%date%
copy %USERPROFILE%\desktop\*.txt %USERPROFILE%\My Documents\%date%
pause

Este arquivo .BAT está criando essas pastas;

  1. No C Drive > Documents
  2. No Google Desktop (e, Chandel > Meu, Documentos > 18-01-2013, Definições > Anshuman)

Qualquer ajuda nesse sentido é muito apreciada!

    
por Anshuman Chandel 18.01.2013 / 05:04

1 resposta

0

Você precisa colocar aspas duplas ( " ) em seus caminhos que contêm ou podem conter espaços ou outros caracteres especiais. Para ser seguro, eu sempre cito todos os caminhos em scripts, apenas no caso. Além disso, você deseja remover as cotações dos valores das variáveis que posteriormente serão componentes em outros caminhos. Então, remova as aspas da linha set date e adicione-as às próximas duas linhas.

Portanto, o seu script deve ser:

@echo off
set date=%date:~7,2%-%date:~4,2%-%date:~10,4%
mkdir "%USERPROFILE%\My Documents\%date%"
copy "%USERPROFILE%\desktop\*.txt" "%USERPROFILE%\My Documents\%date%"
pause
    
por 18.01.2013 / 06:00