好的,所以我做了一些研究,但在这里遇到了一些障碍。我尝试做的是,(使用事件调度程序),每天运行批处理,只获取前一天的" ips * .csv文件(*只是日期格式)并复制它在其他地方,对于我的测试,我使用过" destiny ips"夹。我想我已经搞砸了最后一道障碍。
FORFILES /P "C:\Users\J\Desktop\ips bat\source ips" /M "ips*.csv" /C "cmd /c XCOPY C:\Users \J\Desktop\ips bat\source ips folder C:\Users\J\Desktop\ips bat\destiny ips" /D -1
感谢您提前提供任何帮助。
强尼
答案 0 :(得分:1)
要在命令行中包含特殊字符,请使用0xHH格式的字符的十六进制代码(例如0x09是TAB字符,0x22是双引号“字符。)因此”C:\ Program Files \“变为^ 0x22C:\ Program ^ Files \ ^ 0x22
FORFILES
/P "C:\Users\J\Desktop\ips bat\source ips"
/M "ips*.csv"
/C "cmd /c
XCOPY ^0x22C:\Users\J\Desktop\ips^ bat\source ips folder^0x22
^0x22C:\Users\J\Desktop\ips^ bat\destiny ips^0x22"
/D -1
为了便于阅读,我将它分成多行,但你想把它放回一行。
答案 1 :(得分:1)
for /f "delims=" %%i in (
'dir /b /o:-d "c:\users...etc...ips*.csv" ' ) do (
xcopy /d "%%i" "C:\Users\J\Desktop\ips bat\destiny ips\" &goto :eof
)
应该非常简单地执行此操作(实际上,它可以全部位于一行)它只会将最新版本的文件复制到目标 - 然后才会将目标文件尚未存在(或者与源中的版本不同。)这应该照顾周末或公众假期等非运营日期。
如果目的地保留所有历史记录(即目的地中可能有ips*.csv
个文件不在源中,反之亦然(反之亦然)(“昨天”的新文件除外))然后简单地
xcopy /d "c:\users...etc...ips*.csv" "C:\Users\J\Desktop\ips bat\destiny ips\"
就足够了。
关键点是:
(按理说......等等......是所需路径名的其余部分 - DOS不是通灵的)
答案 2 :(得分:0)
这看起来很可疑 - :
XCOPY C:\Users \J\Desktop\ips bat\source
这是对的吗?