从一个路径中,所有文件(包括存储在子文件夹中的文件)都要复制,但不是子文件夹结构本身,而只是文件要复制?

从一个路径中,所有文件(包括存储在子文件夹中的文件)都要复制,但不是子文件夹结构本身,而只是文件要复制?

从路径中Y:\Server-MODS所有文件(包括存储在子文件夹中的文件,但不是子文件夹本身,而实际上只有文件本身要通过 xcopy 复制到以下路径C:\Users\User\Documents\My Games\FarmingSimulator2022\mods

基本代码如下:

xcopy /s /h /y /d /q "Y:\Server-MODS" "C:\Users\Documents\My Games\FarmingSimulator2022\mods"

复制有效,但不是我上面描述的方式或我希望的方式。

我只想复制所有文件(包括子文件夹中的文件),但不复制文件所在的文件夹,而只是将该文件与其他子文件夹中的其他文件一起复制?

答案1

Set-Location 'C:\Users\User\Documents\My Games\FarmingSimulator2022\mods'
(Get-ChildItem  -Path .\*.* -Recurse -File).FullName | Foreach {Copy-Item $_ 'F:\Server-MODS'}

@echo off 

cd /d "Y:\Server-MODS" || exit /b 
for /f delims^= %%i in ('2^>nul where /r "C:\Users\Documents\My Games\FarmingSimulator2022\mods" *.*')do 1>nul 2>nul copy /y "%%~fi" .

复制有效,但不是我上面描述的方式或我希望的方式。

:: 替换xcopyGet-ChildItem .. | Foreach {Copy-Item ..}循环

/:: 替换xcopyfor /f ..(where /Recursive )do..循环 +copy


/// 编辑 ///

  • 关于编辑你的答案以及参考文献的一些建议(其他资源)以获得在使用/创建 bat 脚本时更好地理解的一些良好实践知识:
@echo off && setlocal EnableDelayedExpansion

color 1f && set "_sources=Y:\"
set "_destination=%UserProfile%\Documents\My Games\FarmingSimulator2022\mods"

for /r "%_source%" %%F in (*)do for %%A in ("%%~pF\.")do =;(
     echo\Von wo: "%%~nxA"
     echo\Welche Datei: "%%~nxF"
     xcopy "%%F" "%_destination%" /v /y /d
     echo\__________________________________ );=

echo\Ueberpruefe Dateien auf Nicht-Existenz auf der NAS...

for /r "%_destination%" %%F in (*)do set^ "_Found=False" & =;(
     for /r "%_source%" %%A in (*)do if "%%~nxF"=="%%~nxA" =;(
         set^ "_Found=True" ) else if "!_Found!" == "True" =;(
         del /q  "%%~fF" && echo\Datei geloescht: "%%~nxF" );=
        );=

echo\MODs sind synchron mit der NAS.
echo\__________ && timeout /t 05 | =;(
     echo\Druecke eine beliebige Taste, um das Fenster zu
     echo\schliessen, ansonsten wird das Fenster innerhalb
     echo\der naechsten 5 Sekunden geschlossen.
    );= & endlocal

其他资源:

答案2

@echo off
color 1f
set "source=Y:\"
set "destination=C:\Users\User\Documents\My Games\FarmingSimulator2022\mods"




for /r "%source%" %%F in (*) do (
  for %%A in ("%%~pF\.") do (
    echo Von wo: "%%~nxA"
  )
  echo Welche Datei: "%%~nxF"
  xcopy "%%F" "%destination%" /v /y /d
  echo __________
)
echo Ueberpruefe Dateien auf Nicht-Existenz auf der NAS...
for /r "%destination%" %%F in (*) do (
  set "fileFound="
  for /r "%source%" %%A in (*) do (
    if /i "%%~nxF"=="%%~nxA" set "fileFound=true"
  )
  if not defined fileFound (
      del "%%F"
      echo Datei geloescht: "%%~nxF"
   
    )
  )


echo MODs sind synchron mit der NAS.
echo __________
echo Druecke eine beliebige Taste, um das Fenster zu schliessen, ansonsten wird das Fenster innerhalb der naechsten 5 Sekunden geschlossen.
timeout /t 5 >nul

相关内容