标题: [文件操作] [已解决,理想]批处理move移动文件,怎样排除指定文件不移动?谢谢 [打印本页]
作者: yyz219 时间: 2022-7-3 15:28 标题: [已解决,理想]批处理move移动文件,怎样排除指定文件不移动?谢谢
本帖最后由 yyz219 于 2022-7-4 11:56 编辑
我的PE桌面有不少的.lnk文件,我想将 “指定的.lnk文件(比如:CGI+路径.lnk Ghost.lnk 关机.lnk 移桌面文件.lnk)以外” 的 移动到 “桌面\不常用\”文件夹
move移动文件,怎样排除指定文件不移动?谢谢
【我希望:编辑“排除”方便】
***************************************************
我目前使用的代码是(本人觉得不科学):- @echo off
- ::【全部(桌面文件)移到(桌面\不常用\)】
-
- MD "X:\Users\Default\Desktop\不常用\"
- move "X:\Users\Default\Desktop\*.*" "X:\Users\Default\Desktop\不常用\"
-
- ::【括号里(有空格加"")又移到(桌面)】
- cd /d "X:\Users\Default\Desktop\不常用\"
-
- for /r %%a in (CGI+路径.* Ghost.* 关机.* 移桌面文件.*) do move %%a "X:\Users\Default\Desktop\" >nul 2>nul
-
- exit
复制代码
********************************************************
正在使用代码:- @echo off
- ::【全部(桌面文件)移到(桌面\不常用\)】
- MD "X:\Users\Default\Desktop\不常用\" & move "X:\Users\Default\Desktop\*.*" "X:\Users\Default\Desktop\不常用\"
-
- ::【(排除列表.txt)中文件又移到(桌面)】
- for /f %%a in ('type "%~dp0移动排除.txt"') do move /y "X:\Users\Default\Desktop\不常用\%%a" "X:\Users\Default\Desktop\"
- exit
- 移动排除.txt:
- 【下面文件(重新移到)(桌面)(一个一行)】
-
- CGI+路径.*
- Ghost.*
- 关机.*
- 移动排除.*
复制代码
作者: flashercs 时间: 2022-7-3 16:02
- @echo off
- ::【全部(桌面文件)移到(桌面\不常用\)】
-
- MD "X:\Users\Default\Desktop\不常用\"
- for /f "delims=" %%a in ('dir /a-d /b "X:\Users\Default\Desktop\*.*"') do (
- if /i not "%%~na"=="CGI+路径" if /i not "%%~na"=="Ghost" if /i not "%%~na"=="关机" if /i not "%%~na"=="移桌面文件" (
- move "X:\Users\Default\Desktop\%%~nxa" "X:\Users\Default\Desktop\不常用\"
- )
- )
-
- exit
复制代码
作者: yyz219 时间: 2022-7-3 16:22
flashercs 发表于 2022-7-3 16:02
我试一试先,谢谢
作者: yyz219 时间: 2022-7-3 16:34
flashercs 发表于 2022-7-3 16:02
成功了,非常感谢
另外,代码还能够再简单一下吗?
作者: yyz219 时间: 2022-7-3 20:44
回复 2# flashercs
编辑排除不够方便(这个可能比较经常需要编辑)
能够修改一下吗?谢谢
作者: flashercs 时间: 2022-7-3 22:07
回复 5# yyz219
PE下 有没有findstr.exe ?好像没有
作者: Batcher 时间: 2022-7-3 22:13
回复 1# yyz219 - @echo off
- md "X:\Users\Default\Desktop\不常用\"
- cd /d "X:\Users\Default\Desktop"
- for /f "delims=" %%a in ('dir /b /a-d *.lnk') do (
- findstr /x /c:"%%a" "%~f0" >nul 2>&1
- if errorlevel 1 (
- move /y "%%a" "X:\Users\Default\Desktop\不常用\"
- )
- )
- goto :eof
-
- :KeepList
- CGI+路径.lnk
- Ghost.lnk
- 关机.lnk
- 移桌面文件.lnk
复制代码
作者: beybeyzk 时间: 2022-7-3 22:14
回复 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 里面自定义需要拷贝的文件名
作者: yyz219 时间: 2022-7-3 22:14
回复 6# flashercs
这个不担心,我可以将正常系统里面的复制过去
作者: yyz219 时间: 2022-7-3 22:17
回复 8# beybeyzk
我试一试先 非常感谢
作者: yyz219 时间: 2022-7-3 23:30
回复 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
我需要的是要排除的(要求方便填写)
作者: flashercs 时间: 2022-7-4 00:20
- @echo off
- cd /d "X:\Users\Default\Desktop"
- set except="CGI+路径.*" "Ghost.*" "关机.*" "移桌面文件.*"
- ::【全部(桌面文件)移到(桌面\不常用\)】
-
- MD "X:\Users\Default\Desktop\不常用\" 2>nul
- for %%b in (%except%) do (
- set "#%%b=1"
- )
- for /f "delims=" %%a in ('dir /a-d /b *.*') do (
- if not defined #%%a move "%%a" "X:\Users\Default\Desktop\不常用\"
-
- )
-
- exit
复制代码
作者: yyz219 时间: 2022-7-4 08:36
flashercs 发表于 2022-7-4 00:20
我试一试先 非常感谢
作者: yyz219 时间: 2022-7-4 08:49
回复 12# flashercs
成功了,非常感谢
作者: yyz219 时间: 2022-7-4 08:50
回复 yyz219
Batcher 发表于 2022-7-3 22:13
我去试一试先,谢谢
作者: yyz219 时间: 2022-7-4 09:04
回复 7# Batcher
非常成功,非常感谢
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |