全神贯注于以下问题-还试图说明我要实现的目标。
源包含名为“ import”的子文件夹,其中包含文件和/或文件夹-(仅)此“ import”文件夹应复制到具有新个人名称的目标目录中,因为只能有一个同名文件夹当然。
.Source
├── FolderA
│ └── import
│ └── Attachment
│ └── log
│
├── FolderB
│ └── import
│ └── log
│
├── FolderC
│ └── import
│ └── Attachment
│ └── log
。
.Destination
├── import27526
│ └── Attachment
│
├── import96385
│
├── import52987
│ └── Attachment
我尝试使用FOR和xcopy或robocopy在CMD中解决此问题,创建随机的目标目录。
for /f "delims=" %%A in ('dir /a:d /b /s "import"') do (xcopy /y /i /S "%%A" "C:\temp\%%~nxA%random%")
不幸的是,它不起作用,因为来自各种“导入”源文件夹中的所有数据都被复制到单个目标目录中,而不是单个目录中。
非常感谢您的帮助!
答案 0 :(得分:2)
根据我的评论和您的回复,以下batch-file应该对您有用:
// ButtonTypes.d.ts
export interface Button {
color: "red" | "blue";
}
来自cmd:
@For /D %%G In (".Source\*") Do @%__AppDir__%Robocopy.exe "%%G\import" ".Destination\%%~nxG_import">NUL
答案 1 :(得分:0)
下面在Powershell中有一个简单的代码,该代码复制包含其内容的文件夹,并在目标位置的文件夹中添加一个数字。 是您想要的东西吗?
下面的脚本是一个一次性交易,如果您运行两次,它将失败(该数字将从1开始)。
如果您想多次运行If-statement
,只需简单地广告$source = "SOURCE PATH"
$destination = "DESTINATION PATH"
$foldername = "FOLDERNAME"
$number = 0
$folders = Get-ChildItem -Path $source -Recurse | Where-Object {$_.Name -eq $foldername}
Foreach ($folder in $folders){
$number++
Copy-Item -Path $folder -Destination $destination -Recurse
Rename-Item -Path "$destination\$foldername" -NewName "$foldername $Number"
}
即可检查使用的名称。
<a href="/redirect-coaching">Coaching</a>
router.get('/redirect-coaching', (req, res) =>
{
res.redirect('/coaching')
})
答案 2 :(得分:0)
尽管用户Compo的approach可能是最聪明的解决方案,但我想提供一个脚本,该脚本将唯一的随机数应用于目标目录中的子目录import*
:< / p>
@echo off
setlocal EnableExtensions DisableDelayedExpansion
rem // Define constants here:
set "_SOURCE=.\Source"
set "_TARGET=.\Destination"
set "_SUBDIR=import"
rem // Reset array variables:
for /F "delims==" %%E in ('2^> nul ^(set "$DIR[" ^& set "$RND["^)') do set "%%E="
rem // Build array of source sub-directories:
set /A "CNT=0"
for /D %%J in ("%_SOURCE%\*") do (
for %%I in ("%%~J\%_SUBDIR%") do (
set "ATTR=%%~aI" & set "ITEM=%%~fI"
setlocal EnableDelayedExpansion
if defined ATTR if "!ATTR:~,1!"=="d" (
for /F "delims=" %%E in ("$DIR[!CNT!]=!ITEM!") do (
endlocal & set "%%E"
)
set /A "CNT+=1"
) else endlocal
)
)
rem // Build array of unique random numbers:
set /A "CNT-=1"
for /L %%R in (0,1,%CNT%) do (
setlocal EnableDelayedExpansion
set /A "RND=(!RANDOM!<<16)+(!RANDOM!<<2)+!RANDOM!%%2"
for /F "delims=" %%E in ("$RND[!RND!_%%R]=%%R") do (
endlocal & set "%%E"
)
)
rem // Copy source sub-direcgtories to destination using random names:
setlocal EnableDelayedExpansion
set /A "CNT=0"
for /F "tokens=2 delims==" %%R in ('2^> nul set "$RND["') do (
> nul xcopy /Y /E /I "!$DIR[%%R]!" "!_TARGET!\!_SUBDIR!!CNT!"
set /A "CNT+=1"
)
endlocal
endlocal
exit /B
如果您对序号感到满意,那么就文件系统返回匹配子目录的顺序(通常在NTFS等现代系统文件中按字母顺序)而言,您可以改用以下脚本:
@echo off
setlocal EnableExtensions DisableDelayedExpansion
rem // Define constants here:
set "_SOURCE=.\Source"
set "_TARGET=.\Destination"
set "_SUBDIR=import"
rem // Build array of source sub-directories:
set /A "CNT=0"
for /D %%J in ("%_SOURCE%\*") do (
for %%I in ("%%~J\%_SUBDIR%") do (
set "ATTR=%%~aI" & set "ITEM=%%~fI"
setlocal EnableDelayedExpansion
if defined ATTR if "!ATTR:~,1!"=="d" (
> nul xcopy /Y /E /I "!ITEM!" "!_TARGET!\!_SUBDIR!!CNT!"
endlocal & set /A "CNT+=1"
) else endlocal
)
)
endlocal
exit /B