我有一个目录,其中包含文件和许多级别的子目录:
C:\Source
Run Code Online (Sandbox Code Playgroud)
我想将C:\ Source的内容移动到:
C:\Destination
Run Code Online (Sandbox Code Playgroud)
要求:
尝试0
XCOPY /E "C:\Source" "C:\Destination"
Run Code Online (Sandbox Code Playgroud)
这很好用,但它复制而不是移动.我无法复制然后删除源,因为我正在移动一大堆文件,并且没有足够的磁盘空间一次有两个副本.
尝试1
MOVE "C:\Source" "C:\Destination"
Run Code Online (Sandbox Code Playgroud)
这将整个C:\ Source目录移动到 C:\ Destination中,所以我最终得到:
C:\Destination\Source
Run Code Online (Sandbox Code Playgroud)
尝试2
在这个问题和接受的答案的帮助下,我提出了:
for /r "C:\Source" %%x in (*) do move "%%x" "C:\Destination"
Run Code Online (Sandbox Code Playgroud)
这会移动C:\ Source中的文件,但不会移动子目录或其内容.请注意,我使用%% x而不是%x,因为我在批处理文件中使用它.
使用FOR似乎很有希望,但我不确定我是否使用了正确的语法?我错过了什么吗?
尝试3
正如Nick D所说,我尝试重命名:
重命名"C:\ Source"目的地
对于示例场景,我给出了这个工作正常.不幸的是,我的真实目标目录与源目录处于不同的级别,似乎不支持:
C:\>REN /?
Renames a file or files.
RENAME [drive:][path]filename1 filename2.
REN [drive:][path]filename1 filename2.
Note that you cannot specify a new drive or path for …Run Code Online (Sandbox Code Playgroud) 如何将PowerShell脚本嵌入到与Windows批处理脚本相同的文件中?
我知道在其他情况下这种事情是可能的:
sqlcmd并在文件开头巧妙地安排goto和注释#!/usr/local/bin/python.可能没有办法做到这一点 - 在这种情况下,我将不得不从启动脚本调用单独的PowerShell脚本.
我考虑过的一个可能的解决方案是回显PowerShell脚本,然后运行它.不这样做的一个很好的理由是,尝试这个的部分原因是使用PowerShell环境的优点而没有例如转义字符的痛苦
我有一些不寻常的限制,并希望找到一个优雅的解决方案.我怀疑这个问题可能是各种各样的反应:"你为什么不尝试解决这个不同的问题." 我只想说这些是我的约束,对此感到抱歉.
有任何想法吗?是否有一个巧妙的评论和转义字符的合适组合,这将使我能够实现这一目标?
关于如何实现这一点的一些想法:
^一行中的克拉是一个延续 - 就像Visual Basic中的下划线一样&通常用于将命令echo Hello & echo World结果分成两个回声在不同的行上所以这样的事情(如果我可以使它工作)会很好:
# & call powershell -psconsolefile %0
# & goto :EOF
/* From here on in we're running nice juicy powershell code */
Write-Output "Hello World"
Run Code Online (Sandbox Code Playgroud)
除了...
Windows PowerShell console file "insideout.bat" extension is not psc1. Windows PowerShell console file extension must be …我们的一个解决方案的postbuild任务使用xcopy将文件移动到构建工件的公共目录中.出于某种原因,在我的计算机上(以及在我测试的VM上),xcopy失败并显示"拒绝访问".以下是我尝试隔离问题所做的工作:
我错过了什么,除了涉及计算机的偏执阴谋理论让我?这种情况发生在我的开发机器和干净的虚拟机上,但项目中的任何其他人都不会发生这种情况.
在我的批处理文件中,我想将多个参数传递给其他应用程序.
现在我做到了
app.exe %1 %2
Run Code Online (Sandbox Code Playgroud)
它只能传递两个参数,但我想通过传递给该批次的所有参数(我宁愿不写%1%2%3%4 ...)
有什么神奇的方法可以做到吗?
我正在寻找可能的最短代码,它将获得文本文件的第一行并将其设置为Windows中的变量.
在这个StackExchange网站的其他线程中有很多这种事情的例子,但我不是在寻找如何循环并显示文件中的所有行.我想要的只是简单地获得第一行.
我正在尝试为Windows XP创建一个批处理(.bat)文件来执行以下操作:
If (file.txt contains the string 'searchString') then (ECHO found it!)
ELSE(ECHO not found)
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经找到了一种方法,使用FIND命令搜索文件中的字符串,该命令返回文件中找到字符串的行,但无法对其进行条件检查.
例如,这不起作用.
IF FIND "searchString" file.txt ECHO found it!
Run Code Online (Sandbox Code Playgroud)
这也不是:
IF FIND "searchString" file.txt=='' ECHO not found
Run Code Online (Sandbox Code Playgroud)
关于如何做到这一点的任何想法?
有人可以指向我的Java框架或别名分析实现.我查看了asm框架,但它只提供数据流分析和控制流分析.
更新:只是好奇,但有人知道Findbugs是否进行别名分析?
java compiler-construction optimization code-analysis java-bytecode-asm
我有一个VB.net程序,我在其中调用Shell函数.我想从文件中获取从此代码生成的文本输出.但是,这不是执行代码的返回值,所以我真的不知道如何.
这个程序是一个服务,但可以访问磁盘没有问题,因为我已经记录了其他信息.整个服务有多个线程,所以我还必须确保在写入文件时它尚未被访问.
我找不到命令或简单的一批命令来递归地从文件和目录中删除"隐藏" - 属性.所有命令如"attrib"和"for"似乎都会跳过隐藏文件.例如:
attrib -H /S /D /L mydir
Run Code Online (Sandbox Code Playgroud)
什么都不做,因为它会跳过所有隐藏的东西.有人知道如何使用标准Windows工具执行此操作吗?
我正在运行Windows 7 Ultimate x64,但我的经验可以追溯到DOS 3.0.
因为像DOS 3.1一样,你可以使用COPY命令将文件附加到另一个文件:
COPY FILE1+FILE2=FILE1
Run Code Online (Sandbox Code Playgroud)
需要一个临时的FILE3是不必要的.
这是因为,只要你加入,你经常需要更新您的一个新的程序非常方便的命令CONFIG.SYS和AUTOEXEC.BAT文件.
它也曾经是得到正确的订单是重要的,否则你最终会得到一个空的FILE1.
但是今天当我尝试的时候,它FILE1没有动过,当我颠倒了命令时,它(可以理解地)制作FILE1 了一份副本FILE2.
有谁知道它是否被其他方法取代,何时发生这种变化?
编辑:
我一直在做更多的测试,奇怪的是即使上面的代码不起作用,你仍然可以从控制台复制并将其附加到现有文件,如下所示:
copy file1+con=file1
Type some text to append to file1
^Z ([CTRL]+Z the End Of File character)
Run Code Online (Sandbox Code Playgroud)
我想知道我的Windows版本是否以某种方式搞砸了.任何人都可以复制我的发现吗?
编辑:
它适用于95/98/ME/2000/XP/XP Mode/7 Professional x64/8 x64.所以我想这不是7 Ultimate x64问题,而是我机器的问题.
*叹气*
编辑:
最后编辑,我保证.:)
这不是我的机器的问题,这是File1的一个问题.显然当我第一次将File2附加到它时,[CTRL] + Z(EOF字符)从未被覆盖,导致文件看起来像这样:
Original Data
Original Data
[EOF]
Appended Data
Appended Data
Appended Data
Run Code Online (Sandbox Code Playgroud)
您可以在命令提示符处使用以下实验自行复制此项.(其中^ Z是字符[CTRL] + Z)
在命令提示符下键入:
copy con file1
File …Run Code Online (Sandbox Code Playgroud) windows ×9
batch-file ×7
cmd ×7
command-line ×1
java ×1
optimization ×1
powershell ×1
scripting ×1
shell ×1
vb.net ×1
xcopy ×1