当前位置: 首页 > 知识库问答 >
问题:

根据今天的日期创建文件夹,并使用批处理文件将文件复制到新文件夹中

袁翔
2023-03-14

我有以下代码,它基于今天的日期创建一个文件夹,并将文件从一个文件夹移动到新的文件夹。我有以下代码:

set date="%date:~7,2%%date:~4,2%%date:~10,4%"
set mydir=%date%
cd "C:\Users\rnan\Desktop\Batch Files\Tess\File History\"
mkdir "C:\Users\rnan\Desktop\Batch Files\Tess\File History\%mydir%"
"C:\Program Files (x86)\WinSCP\WinSCP.com" /command ^
"open ftp://rnan:J13@Files8.cyberlynk.net/tess/" ^
"lcd ""C:\Users\rnan\Desktop\Batch Files\Tess\File History\%mydir%""" ^ 
"get *.csv>1D" ^ 
"exit" 

此代码创建一个文件夹,但不将任何文件复制到新创建的文件夹。正在将文件从FTP服务器复制到新文件夹。请建议一些复制这些文件的更改。

谢谢!

共有1个答案

廉飞捷
2023-03-14

您的代码总体上是正确的(除了date变量的误用,正如@jeff所指出的)。

^周围的空白很可能是错误的。

  • ^必须是该行的最后一个字符。在LCDGET行的^后面似乎有空格。
  • ^后面的行必须以空格开头。以下行中没有空格。

请参阅WinSCP常见问题:为什么批处理文件中WinSCP命令行上指定的一些脚本命令没有执行/失败?

而且,您不仅不应该为date变量赋值。您甚至不应该使用这种方式来格式化时间戳,作为特定于区域设置的date变量的格式。请参见在批处理作业中创建文件名作为时间戳。所以,你最好用另一种方法。

WinSCP本身支持使用其%timestamp%语法设置日期格式。

以下代码修复了^的问题,并使用WinSCP可靠地设置日期格式:

set TIMESTAMP_FORMAT=yyyy-mm-dd
cd "C:\Program Files (x86)\WinSCP"
for /F "tokens=* USEBACKQ" %%F in (`WinSCP.com /command "echo %%TIMESTAMP#%TIMESTAMP_FORMAT%%%" "exit"`) do set TIMESTAMP=%%F
set mydir=C:\Users\rnan\Desktop\Batch Files\Tess\File History\%TIMESTAMP%
mkdir "%mydir%"
WinSCP.com /command ^
    "open ftp://rnan:J13@Files8.cyberlynk.net/tess/" ^
    "lcd ""%mydir%""" ^
    "get *.csv>1D" ^
    "exit" 
 类似资料:
  • Python版本:2.7.13 操作系统:Windows 因此,我正在编写一个脚本,根据文件名中包含文件夹名的要求,将各种名称的文件复制到特定文件夹中。(我对这一点相当陌生,只是想在工作中创建更高效的脚本——我查看了大量StackOverflow页面和web上的一些地方,但找不到与此特定任务相关的Python) 我已经将文件夹转换为一个字符串列表,我可以搜索文件名,但是当我将它们复制到上面时,它们

  • 问题内容: 我正在Swift中构建一个简单的程序,它应该将具有特定扩展名的文件复制到另一个文件夹中。如果该文件夹存在,程序将只将它们复制到该文件夹​​中;如果该文件夹不存在,则程序必须先将其复制。 运行此代码将正确识别MTS文件,但会导致“添加失败…”,我在做什么错? 问题答案: 从文档中: 放置的副本的路径。此路径必须在新位置包含文件或目录的名称。… 您必须将文件名附加到调用的目标目录中 (为S

  • 问题内容: 我需要备份带有日期时间戳的现有文件夹,并将其替换(删除并重新创建)为文件夹内的新内容。 有人有脚本可以做到这一点吗? 我尝试了以下代码,其中 问题答案: 带参数的 命令 以配置的国家/地区为当前用户帐户定义的格式输出当前日期。可以通过引用动态 环境变量 (例如使用)来访问完全相同的日期字符串。 带参数的 命令 以配置的国家/地区为当前用户帐户定义的格式输出当前时间。可以通过引用动态 环

  • 我有一个Windows文件夹结构和文件,如下所示 c:\源文件\file1.txt c:\源文件夹\subfolder1\file2.txt c:\源文件夹\子文件夹2\file3.txt 我想复制所有文件到目标文件夹,如下所示 c:\DestinationFile\file1.txt c:\DestinationFile\file2.txt c:\DestinationFile\file3.tx

  • 本文向大家介绍C#将文件复制到指定文件夹并整理,包括了C#将文件复制到指定文件夹并整理的使用技巧和注意事项,需要的朋友参考一下 下面是在C#中将文件复制(剪切是先复制再删除)到指定的路径,并按日期归档的一个简单实例。值得注意的2点是: 1)文件的路径是关键,程序中使用双斜杠\\ 2)文件和文件夹的区别 附上其他网友的实现方法: 完全可以不用递归实现,用广度优先算法可以节省栈空间 以上所述就是本文的

  • 问题内容: 我已经阅读了Node.js的文档,除非我错过了一些内容,否则它不会告诉某些操作(特别是)中包含哪些参数。正如您在文档中看到的那样,它不是很多。 当前,我有以下代码,该代码尝试创建一个文件夹或使用现有的文件夹: 但是我想知道这是正确的方法吗?检查代码是否正确知道文件夹已存在?我知道我可以在创建目录之前执行此操作,但这已经是对文件系统的两次打击。 其次,是否有Node.js的完整或至少更详