[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
支持文件夹名 xxxxx-xxxxx_xxx_xxxx-数字-xxxx_xxxx等,如有多段数字则以最后一段数字为文件夹。分隔线为 “-" 或"_"  把脚本和A/B文件夹放同一目录
  1. gci "$Pwd\A" -Directory|%{
  2. foreach ($Number in @($_.name.Split('_-'))) {
  3. $err=$null
  4. foreach ($i in ($Number.GetEnumerator())){
  5. if (![Char]::IsDigit("$i")){$err='yes'}
  6. }
  7. if (!$err){$Folder=$Number}
  8. }
  9. if([Io.Directory]::Exists("$Pwd\B\$Folder")){
  10. Get-Item "$($_.fullname)\*"|%{
  11. Copy $_.Fullname -Dest "$Pwd\B\$Folder\" -Recurse -Force
  12. if ($?){Write-host '复制文件:'$_.Fullname -fore Magenta}
  13. }
  14. }
  15. }
复制代码
若在命令行中运行脚本,不需要运行管理员模式,用普通用户模式即可。若运行提示没有权限,则导入下面的注册表即可。可以在脚本上点右键,然后选择在powershell 中运行。

注册表 提权  xxx.reg
  1. Windows Registry Editor Version 5.00
  2. [HKEY_CURRENT_USER\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]
  3. "ExecutionPolicy"="Bypass"
复制代码

TOP

回复 15# xczxczxcz


    厉害,膜拜大神!

厚着脸再问一下,可否有办法让我手动填写AB的路径,然后再执行复制命令。

TOP

本帖最后由 xczxczxcz 于 2018-12-17 17:06 编辑

回复 17# cxy03791695766

先运行脚本 按提示操作, 文件名长度不能超过80个字符。脚本可放任意位置。若手工输入需要完整路径。
  1. $A文件夹=Read-host -Prompt "拖入 A 文件夹 并回车"
  2. $B文件夹=Read-host -Prompt "拖入 B 文件夹 并回车"
  3. gci "$A文件夹" -Directory|%{
  4. foreach ($Number in @($_.name.Split('_-'))) {
  5. $err=$null
  6. foreach ($i in ($Number.GetEnumerator())){
  7. if (![Char]::IsDigit("$i")){$err='yes'}
  8. }
  9. if (!$err){$Folder=$Number}
  10. }
  11. if([Io.Directory]::Exists("$B文件夹\$Folder")){
  12. Get-Item "$($_.fullname)\*"|%{
  13. Copy $_.Fullname -Dest "$B文件夹\$Folder\" -Recurse -Force
  14. if ($?){Write-host '复制文件:'$_.Fullname -fore Magenta}
  15. }
  16. }
  17. }
  18. pause
复制代码
==============enjoy================

TOP

回复 18# xczxczxcz


    完美!太感谢了!

TOP

返回列表