"我有这么几句 CMD 命令: copy C:\download\usere\17d3f260-bee0-476a-9486-632d93961455758575 Z:\wj 如何使用 syst .."
我有这么几句 CMD 命令:copy C:\download\usere\17d3f260-bee0-476a-9486-632d93961455758575 Z:\wj如何使用 system 函数去执行它?
=system(“cmd /c copy d:\t2.txt e:\t2.txt”)试了一下,这样是可以执行的,windows 路径符号要用 \
powershell 命令都可以执行,注意路径的写法和引号就可以了,这个是写在 excel 插件里的语句:
=spl("=system(""cmd /c powershell -command New-Item -Path \\\\Mac\\Home\\Downloads\\文件夹 -ItemType Directory"")")
但是,我有另一个问题,用 system 来执行 cmd 命令或者 powershell 命令后,能不能返回结果,比如:
上述截图中的命令返回值应该是 "hello SPL",但返回的是 0,0 只是表示执行成功,并没有返回结果。但在日志文件中有显示结果:
system 返回的是进程的 exit code,你这是要取进程的输出,可能在 stdout 也可能在 stderr
感谢大佬关注🙏
system 执行命令后获取屏幕输出结果,这个问题一直没好意思求助,正好有相关的帖子,就搭个顺风车。
命令执行后好像有两种结果形式,一种是像移动、复制文件 / 文件夹,重新命名等这类操作,返回 true/false,另一种是会在屏幕输出文本信息的。比如以下截图中的语句,打印出指定路径下名为 F 文件夹下的所有 2 级文件夹的路径名称,一种是把结果直接打印在屏幕,一种是把结果以 txt 文件形式输出。
可以看到,A2 格打印在屏幕的信息 SPL 是以 INFO 的形式输出到了 log 文件,而代码格中返回的是 0,我的意思是代码中可否显示出执行结果,就像上述截图中的 A4 格的形式得到结果。A3 是把结果输出到了外部文件。
system 启动进程执行命令时会接管 stdout 和 stderr,进程结束后会将 stdout 和 stderr 里的输出内容写进日志文件了
嗯,输出不管了,我也只是好奇多嘴问一下。
目前,system 可以执行 cmd 命令和 linux 下的命令:system(“cmd /c …”)system(“sh -c …”)
powershell 的命令也可以执行,但需要通过 cmd: system(“cmd /c powershell -c …”)
那有没有可能直接执行 powershell 命令,比如写成: system(“powershell -c …”) 或者 system(“ps -c …”) 😄
试了一下可以的,powershell 运行路径有没有加入环境变量
我看官方文档里只写了 cmd /c 和 sh -c 两种用法,就没有进一步试一下 powershell -c刚试了 powershell -c 和 powershell -command 都可以执行。感谢分享🙏
如果能把执行结果返回到代码格就好了😄
=system(“cmd /c copy d:\t2.txt e:\t2.txt”)
试了一下,这样是可以执行的,windows 路径符号要用 \
powershell 命令都可以执行,注意路径的写法和引号就可以了,这个是写在 excel 插件里的语句:
但是,我有另一个问题,用 system 来执行 cmd 命令或者 powershell 命令后,能不能返回结果,比如:
上述截图中的命令返回值应该是 "hello SPL",但返回的是 0,0 只是表示执行成功,并没有返回结果。
但在日志文件中有显示结果:
system 返回的是进程的 exit code,你这是要取进程的输出,可能在 stdout 也可能在 stderr
感谢大佬关注🙏
system 执行命令后获取屏幕输出结果,这个问题一直没好意思求助,正好有相关的帖子,就搭个顺风车。
命令执行后好像有两种结果形式,一种是像移动、复制文件 / 文件夹,重新命名等这类操作,返回 true/false,另一种是会在屏幕输出文本信息的。比如以下截图中的语句,打印出指定路径下名为 F 文件夹下的所有 2 级文件夹的路径名称,一种是把结果直接打印在屏幕,一种是把结果以 txt 文件形式输出。
可以看到,A2 格打印在屏幕的信息 SPL 是以 INFO 的形式输出到了 log 文件,而代码格中返回的是 0,我的意思是代码中可否显示出执行结果,就像上述截图中的 A4 格的形式得到结果。A3 是把结果输出到了外部文件。
system 启动进程执行命令时会接管 stdout 和 stderr,进程结束后会将 stdout 和 stderr 里的输出内容写进日志文件了
嗯,输出不管了,我也只是好奇多嘴问一下。
目前,system 可以执行 cmd 命令和 linux 下的命令:
system(“cmd /c …”)
system(“sh -c …”)
powershell 的命令也可以执行,但需要通过 cmd: system(“cmd /c powershell -c …”)
那有没有可能直接执行 powershell 命令,比如写成: system(“powershell -c …”) 或者 system(“ps -c …”) 😄
试了一下可以的,powershell 运行路径有没有加入环境变量
我看官方文档里只写了 cmd /c 和 sh -c 两种用法,就没有进一步试一下 powershell -c
刚试了 powershell -c 和 powershell -command 都可以执行。感谢分享🙏
如果能把执行结果返回到代码格就好了😄