- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
您好,我有一个批量复制文件的小命令,这很有帮助,因为我每天多次执行此特定复制。使用 xcopy 命令时出现问题。一切正常,但我收到此错误:“复制的路径 0 文件无效”。这是代码:
C:\Windows\System32\xcopy /Y "C:\Users\Ryan\Desktop\mmars_pub\" "C:\Users\Ryan\Desktop\Dropbox\MMARS\mmars_pub\"
我正在使用 xcopy 可执行文件的完整路径,因为我在配置路径环境变量以正常运行时遇到了问题。我想它不应该影响结果。我在某处读到“防止基于 MS-DOS 的程序检测 Windows”复选框应该可以解决问题,但我似乎无法找到它。任何帮助表示赞赏。
最佳答案
原始答案
从源文件夹路径中删除结尾的反斜杠
C:\Windows\System32\xcopy.exe /Y "C:\Users\Ryan\Desktop\mmars_pub" "C:\Users\Ryan\Desktop\Dropbox\MMARS\mmars_pub\"
编辑 2015/10/01
虽然原始问题使用了文字路径,并且指定的解决方案将解决问题,但还有另一种选择。对于文字路径以及路径在变量内部并且可以(或不)以反斜杠结尾的情况,确保结尾的反斜杠(如果存在)与引号分开就足够了,包括结尾的点。
xcopy /y "x:\source\." "x:\target"
xcopy /y "%myVariable%." "x:\target"
这个结束点不会干扰文件/文件夹名称。如果有和结束反斜杠,额外的点将简单地引用同一个文件夹。如果没有结束反斜杠,如 Windows 文件和文件夹不能以点结束其名称,它将被丢弃。
但是如果要处理 xcopy
命令的输出,请记住这个额外的点将包含在显示的路径中。
注意:解决方案在线上方。如果对出现问题的原因/位置感兴趣,请继续阅读。
为什么 xcopy "c:\source\""d:\target\"
失败但 xcopy "c:\source""d:\target\"
有效?
这两个命令似乎都有有效的路径引用,而且……是的!两者都是有效的路径引用,但有两个元素共同作用导致命令失败:
xcopy
不是cmd
处理的内部命令,而是一个可执行文件由于 xcopy
是一个外部命令,它的参数不会按照 cmd
解析器命令行逻辑进行处理。它们由 Microsoft C startup code 处理.
这个解析器遵循两套规则,官方规则
Arguments are delimited by white space, which is either a space or a tab.
A string surrounded by double quotation marks is interpreted as a single argument, regardless of white space contained within. A quotedstring can be embedded in an argument. Note that the caret (
^
) is notrecognized as an escape character or delimiter.A double quotation mark preceded by a backslash,
\"
, is interpreted as a literal double quotation mark ("
).Backslashes are interpreted literally, unless they immediately precede a double quotation mark.
If an even number of backslashes is followed by a double quotation mark, then one backslash (
\
) is placed in the argv array for everypair of backslashes (\\
), and the double quotation mark ("
) isinterpreted as a string delimiter.If an odd number of backslashes is followed by a double quotation mark, then one backslash (
\
) is placed in the argv array for everypair of backslashes (\\
) and the double quotation mark is interpretedas an escape sequence by the remaining backslash, causing a literaldouble quotation mark ("
) to be placed in argv.
和未记录/非官方规则(How Command Line Parameters Are Parsed)
- Outside a double quoted block a
"
starts a double quoted block.- Inside a double quoted block a
"
followed by a different character (not another"
) ends the double quoted block.- Inside a double quoted block a
"
followed immediately by another"
(i.e.""
) causes a single"
to be added to the output, and thedouble quoted block continues.
此解析器将在 "first" 参数末尾找到的序列 \"
视为不结束/关闭参数的转义引号,它被视为作为一部分或参数。“第二个”参数的“开始”引号只是结束双引号 block 但没有结束参数,请记住参数是定界的通过空白。
所以虽然它似乎命令行参数是
v v v......argument delimiters
v.........v v..........v ......quoted blocks
xcopy "x:\souce\" "x:\target\"
^.......^ ^........^ ......argument data
arg #1 arg #2
arg #1 = x:\source\
arg #2 = x:\target\
xcopy
处理的实际参数是
v v .....argument delimiters
v......................v .....quoted block
xcopy "x:\souce\" "x:\target\"
^.....................^ .....argument data
arg #1
arg #1 = x:\source" x:\target"
当删除结束反斜杠或包含额外的点时,参数中的结束引号将不会被转义,它将关闭引用 block 并且参数之间的空格将被视为分隔符。
关于windows - "invalid path 0 files copied"使用 xcopy 命令时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25840861/
SQLite、Content provider 和 Shared Preference 之间的所有已知区别。 但我想知道什么时候需要根据情况使用 SQLite 或 Content Provider 或
警告:我正在使用一个我无法完全控制的后端,所以我正在努力解决 Backbone 中的一些注意事项,这些注意事项可能在其他地方更好地解决......不幸的是,我别无选择,只能在这里处理它们! 所以,我的
我一整天都在挣扎。我的预输入搜索表达式与远程 json 数据完美配合。但是当我尝试使用相同的 json 数据作为预取数据时,建议为空。点击第一个标志后,我收到预定义消息“无法找到任何内容...”,结果
我正在制作一个模拟 NHL 选秀彩票的程序,其中屏幕右侧应该有一个 JTextField,并且在左侧绘制弹跳的选秀球。我创建了一个名为 Ball 的类,它实现了 Runnable,并在我的主 Draf
这个问题已经有答案了: How can I calculate a time span in Java and format the output? (18 个回答) 已关闭 9 年前。 这是我的代码
我有一个 ASP.NET Web API 应用程序在我的本地 IIS 实例上运行。 Web 应用程序配置有 CORS。我调用的 Web API 方法类似于: [POST("/API/{foo}/{ba
我将用户输入的时间和日期作为: DatePicker dp = (DatePicker) findViewById(R.id.datePicker); TimePicker tp = (TimePic
放宽“邻居”的标准是否足够,或者是否有其他标准行动可以采取? 最佳答案 如果所有相邻解决方案都是 Tabu,则听起来您的 Tabu 列表的大小太长或您的释放策略太严格。一个好的 Tabu 列表长度是
我正在阅读来自 cppreference 的代码示例: #include #include #include #include template void print_queue(T& q)
我快疯了,我试图理解工具提示的行为,但没有成功。 1. 第一个问题是当我尝试通过插件(按钮 1)在点击事件中使用它时 -> 如果您转到 Fiddle,您会在“内容”内看到该函数' 每次点击都会调用该属
我在功能组件中有以下代码: const [ folder, setFolder ] = useState([]); const folderData = useContext(FolderContex
我在使用预签名网址和 AFNetworking 3.0 从 S3 获取图像时遇到问题。我可以使用 NSMutableURLRequest 和 NSURLSession 获取图像,但是当我使用 AFHT
我正在使用 Oracle ojdbc 12 和 Java 8 处理 Oracle UCP 管理器的问题。当 UCP 池启动失败时,我希望关闭它创建的连接。 当池初始化期间遇到 ORA-02391:超过
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve
引用这个plunker: https://plnkr.co/edit/GWsbdDWVvBYNMqyxzlLY?p=preview 我在 styles.css 文件和 src/app.ts 文件中指定
为什么我的条形这么细?我尝试将宽度设置为 1,它们变得非常厚。我不知道还能尝试什么。默认厚度为 0.8,这是应该的样子吗? import matplotlib.pyplot as plt import
当我编写时,查询按预期执行: SELECT id, day2.count - day1.count AS diff FROM day1 NATURAL JOIN day2; 但我真正想要的是右连接。当
我有以下时间数据: 0 08/01/16 13:07:46,335437 1 18/02/16 08:40:40,565575 2 14/01/16 22:2
一些背景知识 -我的 NodeJS 服务器在端口 3001 上运行,我的 React 应用程序在端口 3000 上运行。我在 React 应用程序 package.json 中设置了一个代理来代理对端
我面临着一个愚蠢的问题。我试图在我的 Angular 应用程序中延迟加载我的图像,我已经尝试过这个2: 但是他们都设置了 src attr 而不是 data-src,我在这里遗漏了什么吗?保留 d
我是一名优秀的程序员,十分优秀!