小编Ros*_*dge的帖子

如何在PowerShell中使用cmd类型的管道(/管道)?

在cmd(和bash)中,管道" |"以第一个命令输出的原始格式(作为字符串)将输出推送到另一个命令.

在PowerShell中,管道中出现的所有内容都是一个对象(即使字符串是一个字符串对象).

因此,在PowerShell命令窗口中运行时,某些命令会失败,而不是Windows命令窗口.

例:

dir c:\windows | gzip > test.gz
Run Code Online (Sandbox Code Playgroud)

在Windows命令提示符窗口中运行此命令时,它可以正常工作 - C:\ windows的目录列表被压缩到test.gz文件中.

PowerShell中的相同命令失败,因为PowerShell不使用cmd样式的管道并将其替换为PowerShell管道(使用文件系统项目数组).

问:如何在PowerShell中禁用默认管道行为,以使传统Windows命令在PowerShell中的工作方式相同?

我尝试`在管道" `|" 之前使用转义字符" ",但它没有用.我也尝试过invoke-expression -command "command with | here",但也失败了.

windows powershell cmd pipe

3
推荐指数
1
解决办法
6797
查看次数

如何使用Perl将文件格式从Unix更改为DOS?

基本上我想将我的文件格式从Unix更改为DOS.在Perl中有什么办法吗?非常感谢!

format perl file

3
推荐指数
1
解决办法
3202
查看次数

删除小于特定大小的文件

我想删除目录中小于特定大小的所有文件.有谁知道是否有Windows命令会这样做?就像是del *.* where size<3kb

我目前正在这样做:

for /F %%A in ("*.pdf") do If %%~zA LSS 20103409 del %%~fA
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:

C:\Documents and Settings\agordon\Desktop\test>If 6440450 LSS 20103409 del C:\Do
cuments and Settings\agordon\Desktop\test\US Tox 01-06-11.pdf
The system cannot find the path specified.
Run Code Online (Sandbox Code Playgroud)

...即使该PDF文件足够小,可以删除.

我究竟做错了什么?

这实际上是有效的:

FOR %%F IN (*.pdf) DO (
IF %%~zF LSS 20103409  DEL %%F
)
Run Code Online (Sandbox Code Playgroud)

但是它没有识别文件名,因为它们有空格!如何在该脚本中将Windows名称转换为"DOS"名称?例如,Windows名称是file name.pdf我可能需要转换为"DOS",它看起来像这样file_name.pdf或类似的东西.

windows cmd batch-file

3
推荐指数
1
解决办法
2万
查看次数

使用Windows批处理从文件中删除尾随空格?

如何使用Windows命令提示符修剪文本文件中的所有尾随空格?

windows cmd batch-file

3
推荐指数
2
解决办法
2万
查看次数

CMD - 等待并行命令行完成?

我通过命令行(win7 cmd)并行执行4个任务:

start defrag /A c:
start defrag /A d:
start defrag /A e:
start  defrag /A f:
dir 
Run Code Online (Sandbox Code Playgroud)

但是,该dir命令在第一行之后执行.

我希望在dir完成所有4个命令后执行该命令.

我该怎么做 ?

windows cmd windows-7

3
推荐指数
1
解决办法
1475
查看次数

如何在dos命令行中将文件与文件之间的新行连接起来

我知道我可以在以下目录中连接文件:

copy /b *.txt all.txt
Run Code Online (Sandbox Code Playgroud)

但我还有一个问题.我应该如何在每个文件之间添加新行?我发现这是copy/b命令的问题.想想这种情况:

content of a.txt: --ALTER TABLE table1 ...;
content of b.txt: CREATE TABLE table2 ...;
content of c.txt: DROP TABLE table3 ...;
Run Code Online (Sandbox Code Playgroud)

我希望连接的结果是

--ALTER TABLE table1 ...;
CREATE TABLE table2 ...;
DROP TABLE table3 ...;
Run Code Online (Sandbox Code Playgroud)

代替

--ALTER TABLE table1 ...;CREATE TABLE table2 ...;DROP TABLE table3 ...;
Run Code Online (Sandbox Code Playgroud)

,其中的内容可以被视为评论.

windows cmd copy batch-file

3
推荐指数
1
解决办法
7602
查看次数

如何在对驻留在不同程序集中的方法执行JMP指令时获取正确的方法引用

我有以下代码,基本上创建一个DynamicAssembly有两种类型,每种类型都有一个公共方法.

        var assembly = AppDomain.CurrentDomain.DefineDynamicAssembly
                (new AssemblyName("TestAssembly"), AssemblyBuilderAccess.Run);
        var module = assembly.DefineDynamicModule("Main");
        var type1 = module.DefineType("type1");


        var method1 = type1.DefineMethod
                      (
                        "Method1", MethodAttributes.Public, typeof(void), null
                      );

        var gen = method1.GetILGenerator();
        gen.Emit(OpCodes.Ret);

        var t1 = type1.CreateType();

        var createdMethod1 = t1.GetMethod("Method1");

        var type2 = module.DefineType("type2");

        var method2 = type2.DefineMethod
                      (
                        "Method2", MethodAttributes.Public, typeof(void), null
                      );


        byte[] ilCodes = new byte[5];
        ilCodes[0] = (byte)OpCodes.Jmp.Value;
        ilCodes[1] = (byte)(createdMethod1.MetadataToken & 0xFF);
        ilCodes[2] = (byte)(createdMethod1.MetadataToken >> 8 & 0xFF);
        ilCodes[3] = (byte)(createdMethod1.MetadataToken >> 16 & 0xFF); …
Run Code Online (Sandbox Code Playgroud)

c# il reflection.emit .net-assembly

3
推荐指数
1
解决办法
212
查看次数

Visual Studio 2015 c ++和程序集没有构建

我最近想开始学习汇编,但是我在构建我的项目时遇到了一些问题.

我想要的是一个C++和汇编项目,但它目前无法正常工作.下面显示的汇编代码构建得很好:

ExitProcess PROTO

.data

.code

main proc

    mov rax, 8

    mov rcx, 0
    call ExitProcess

main endp

end
Run Code Online (Sandbox Code Playgroud)

但是当我向项目中添加一个cpp文件时,我得到一堆链接器错误:

void ToDo()
{
    int i = 0;
}
Run Code Online (Sandbox Code Playgroud)

错误:

1>------ Build started: Project: AssemblyTest, Configuration: Debug x64 ------
1>  test.cpp
1>MSVCRTD.lib(_init_.obj) : error LNK2019: unresolved external symbol _CrtDbgReport referenced in function _CRT_RTC_INIT
1>MSVCRTD.lib(_init_.obj) : error LNK2019: unresolved external symbol _CrtDbgReportW referenced in function _CRT_RTC_INITW
1>MSVCRTD.lib(_error_.obj) : error LNK2019: unresolved external symbol __stdio_common_vsprintf_s referenced in function _vsprintf_s_l
1>MSVCRTD.lib(_error_.obj) : error LNK2001: …
Run Code Online (Sandbox Code Playgroud)

c++ assembly visual-studio-2015

3
推荐指数
1
解决办法
3663
查看次数

无法识别的仿真模式:MinGW32上的elf_i386

我正在尝试创建一个内核,我无法将C输出与程序集链接起来.的ld.我收到错误:

无法识别的仿真模式:elf_i386

我正在使用Windows 10专业版与MinGW32和MSYS.我正在使用的代码:

link.ld

/*
*  link.ld
*/
OUTPUT_FORMAT(elf32-i386)
ENTRY(start)
SECTIONS
 {
   . = 0x100000;
   .text : { *(.text) }
   .data : { *(.data) }
   .bss  : { *(.bss)  }
 }
Run Code Online (Sandbox Code Playgroud)

kernel.c

/*
*  kernel.c
*/
void kmain(void)
{
    const char *str = "my first kernel";
    char *vidptr = (char*)0xb8000;  //video mem begins here.
    unsigned int i = 0;
    unsigned int j = 0;

    /* this loops clears the screen
    * there are 25 lines …
Run Code Online (Sandbox Code Playgroud)

c x86 assembly linker osdev

3
推荐指数
1
解决办法
4548
查看次数

找一个免费的中断插槽

一些小丑(BIOS/DOS/TSR ......)在中断向量表中写入了随机数据.我知道这是因为拆卸告诉了我.

通常在占用中断向量之前,我验证所选的IVT插槽是空的.但是,有了所有这些留下来的数据,一个不起眼的应用程序如何知道钩住特定的中断向量仍然是安全的?

虽然我的程序员参考描述了DOS功能25小时SetInterruptVector

" 安全地修改中断向量以指向指定的中断处理程序"

我不认为这种预先存在的虚假内容太过关注.到目前为止安全!


是否有一些巧妙的方法可以绝对确定中断向量是免费的?

x86 assembly dos interrupt-handling

3
推荐指数
1
解决办法
121
查看次数