[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决,理想]批处理move移动文件,怎样排除指定文件不移动?谢谢

本帖最后由 yyz219 于 2022-7-4 11:56 编辑

我的PE桌面有不少的.lnk文件,我想将 “指定的.lnk文件(比如:CGI+路径.lnk Ghost.lnk 关机.lnk 移桌面文件.lnk)以外”  的  移动到  “桌面\不常用\”文件夹

move移动文件,怎样排除指定文件不移动?谢谢
【我希望:编辑“排除”方便】
***************************************************
我目前使用的代码是(本人觉得不科学):
  1. @echo off
  2. ::【全部(桌面文件)移到(桌面\不常用\)】
  3. MD   "X:\Users\Default\Desktop\不常用\"
  4. move "X:\Users\Default\Desktop\*.*"  "X:\Users\Default\Desktop\不常用\"
  5. ::【括号里(有空格加"")又移到(桌面)】
  6. cd /d "X:\Users\Default\Desktop\不常用\"
  7. for /r %%a in (CGI+路径.* Ghost.* 关机.* 移桌面文件.*) do move %%a "X:\Users\Default\Desktop\" >nul 2>nul
  8. exit
复制代码
********************************************************
正在使用代码:
  1. @echo off
  2. ::【全部(桌面文件)移到(桌面\不常用\)】
  3. MD "X:\Users\Default\Desktop\不常用\" & move "X:\Users\Default\Desktop\*.*"  "X:\Users\Default\Desktop\不常用\"
  4. ::【(排除列表.txt)中文件又移到(桌面)】
  5. for /f %%a in ('type "%~dp0移动排除.txt"') do move /y "X:\Users\Default\Desktop\不常用\%%a" "X:\Users\Default\Desktop\"
  6. exit
  7. 移动排除.txt:
  8. 【下面文件(重新移到)(桌面)(一个一行)】
  9. CGI+路径.*
  10. Ghost.*  
  11. 关机.*
  12. 移动排除.*
复制代码
我是小白,希望老师多多帮助

  1. @echo off
  2. ::【全部(桌面文件)移到(桌面\不常用\)】
  3. MD   "X:\Users\Default\Desktop\不常用\"
  4. for /f "delims=" %%a in ('dir /a-d /b "X:\Users\Default\Desktop\*.*"') do (
  5.   if /i not "%%~na"=="CGI+路径" if /i not "%%~na"=="Ghost" if /i not "%%~na"=="关机" if /i not "%%~na"=="移桌面文件" (
  6.     move "X:\Users\Default\Desktop\%%~nxa" "X:\Users\Default\Desktop\不常用\"
  7.   )
  8. )
  9. exit
复制代码
1

评分人数

微信:flashercs
QQ:49908356

TOP

flashercs 发表于 2022-7-3 16:02



    我试一试先,谢谢
我是小白,希望老师多多帮助

TOP

flashercs 发表于 2022-7-3 16:02



    成功了,非常感谢

另外,代码还能够再简单一下吗?
我是小白,希望老师多多帮助

TOP

回复 2# flashercs


    编辑排除不够方便(这个可能比较经常需要编辑)

能够修改一下吗?谢谢
我是小白,希望老师多多帮助

TOP

回复 5# yyz219


    PE下 有没有findstr.exe ?好像没有
微信:flashercs
QQ:49908356

TOP

回复 1# yyz219
  1. @echo off
  2. md "X:\Users\Default\Desktop\不常用\"
  3. cd /d "X:\Users\Default\Desktop"
  4. for /f "delims=" %%a in ('dir /b /a-d *.lnk') do (
  5.     findstr /x /c:"%%a" "%~f0" >nul 2>&1
  6.     if errorlevel 1 (
  7.         move /y "%%a" "X:\Users\Default\Desktop\不常用\"
  8.     )
  9. )
  10. goto :eof
  11. :KeepList
  12. CGI+路径.lnk
  13. Ghost.lnk
  14. 关机.lnk
  15. 移桌面文件.lnk
复制代码
1

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 1# yyz219

for /f %%a in ('type D:\ID_log.txt') do move /y "X:\Users\Default\Desktop\%%a" "X:\Users\Default\Desktop\不常用\"

D:\ID_log.txt 里面自定义需要拷贝的文件名
1

评分人数

TOP

回复 6# flashercs


    这个不担心,我可以将正常系统里面的复制过去
我是小白,希望老师多多帮助

TOP

回复 8# beybeyzk

我试一试先 非常感谢
我是小白,希望老师多多帮助

TOP

回复  yyz219

for /f %%a in ('type D:\ID_log.txt') do move /y "X:\Users\Default\Desktop\%%a" "X:\ ...
beybeyzk 发表于 2022-7-3 22:14



    我需要的是要排除的(要求方便填写)
我是小白,希望老师多多帮助

TOP

  1. @echo off
  2. cd /d "X:\Users\Default\Desktop"
  3. set except="CGI+路径.*" "Ghost.*" "关机.*" "移桌面文件.*"
  4. ::【全部(桌面文件)移到(桌面\不常用\)】
  5. MD   "X:\Users\Default\Desktop\不常用\" 2>nul
  6. for %%b in (%except%) do (
  7.     set "#%%b=1"
  8.   )
  9. for /f "delims=" %%a in ('dir /a-d /b *.*') do (
  10.   if not defined #%%a move "%%a" "X:\Users\Default\Desktop\不常用\"
  11.   
  12. )
  13. exit
复制代码
1

评分人数

微信:flashercs
QQ:49908356

TOP

flashercs 发表于 2022-7-4 00:20


我试一试先 非常感谢
我是小白,希望老师多多帮助

TOP

回复 12# flashercs


    成功了,非常感谢
我是小白,希望老师多多帮助

TOP

回复  yyz219
Batcher 发表于 2022-7-3 22:13


我去试一试先,谢谢
我是小白,希望老师多多帮助

TOP

返回列表