Belirli dosyaları başka bir klasöre kopyala


0

Merhaba Dosyaları belirli klasörlerden bir başkasına toplu iş dosyasıyla kopyalamakla ilgili bir sorum var.

Takip koduna sahibim:

echo off
set arg1=%1
set "arg2=%~2"
set arg3=%3

FOR /R %arg1% %%G IN (%arg3%) DO (
    COPY %%G %arg2%\tempsrc\%%~nxG
)

Argümanların girişine:

arg1 = The path where the files are located
arg2 = the output path
arg3 = the file where it should be search for.

Örneğin toplu iş dosyasını çalıştırmak için: test.bat "C:\Batch\SourceDir" "C:'\Batch\Output" "test.xml"

SourceDir klasörü içinde iki alt klasör var:

  • 1000
    • Text.xml
  • 2000
    • test.xml

Bu klasörün her birinde dosya test.xmlbulunur. Her iki dosyayı da çıktı dizinine kopyalamak istiyorum ve latetst dosyası öncekinin üzerine yazmalı.

Bu ne yazık ki çalışmıyor. Biri bana nedenini söyleyebilir mi? Mesajı alıyorum: Sistem belirtilen dosyayı bulamıyor.


1
Boşluk içeren bir klasör veya dosya bir hataya neden olur çünkü birden fazla argüman olduğunu düşünecektir. COPY komutunda kaynağınız ve hedefiniz arasına tırnak işareti eklerseniz, büyük olasılıkla işe yarayacaktır. Ayrıca, örneğinizde bir 'var. Bu bir yazım hatası mı?
LPChip,

Evet, teşekkürler! Bu hileci oldu, ayrıca yazım hatası bildirdiğiniz için teşekkürler! @LPChip
Rotan075

Size bir cevap yazacağım, böylece başkaları artık yardıma ihtiyacınız olmayacağını bilecek. :)
LPChip,

evet iyi fikir! @LPChip
Rotan075

Yanıtlar:


1

Boşluk içeren bir klasör veya dosya bir hataya neden olur çünkü birden fazla argüman olduğunu düşünecektir. COPY komutunda kaynağınız ve hedefiniz arasına tırnak işareti eklerseniz, büyük olasılıkla işe yarayacaktır.

Komut dosyanız şu şekilde olurdu:

echo off
set arg1=%1
set "arg2=%~2"
set arg3=%3

FOR /R %arg1% %%G IN (%arg3%) DO (
    COPY "%%G" "%arg2%\tempsrc\%%~nxG"
)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.