[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] powershell如何读取带有空格的文本并创建文件夹?

我有文本,位于D:\新 123\zj.txt
内容为:
第一节 概述
第二节 文件读取
第三节 文本建立
.....
有很多行,想要用ps来批量读取,并创建文件夹于C:\2018 备份\目录下,不知该怎么做?

另外,我电脑安装了vs2013,不知如何配置能够配置为ps的编辑器+调试器?
谢谢各位的帮助!

本帖最后由 yhcfsr 于 2018-3-25 08:20 编辑

扫描文件
  1. get-childitem -path "目录名"
复制代码
读取文件
  1. get-content -path "文件路径"
复制代码
创建目录
  1. New-Item -ItemType Directory -Path "目录路径"
复制代码
说明一点:Powershell和VS完全没关系,WIN10自带最新PS,WIN10以下系统去微软官网下载升级补丁升级PS

TOP

回复 2# yhcfsr
能否指点下,下面的代码为何不行?
  1. $aa = Get-Content D:\新 123\zj.txt
  2. $len = $aa.length
  3. for ($i = 0; $i -lt $len; $i++)
  4. {
  5. New-Item -Path  "C:\2018 备份\$aa[$i]"  -ItemType directory
  6. }
  7. Pause
复制代码

TOP

回复 3# zhanglei1371
路径带空格
字符串与变量的拼接
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

  1. gc 'D:\新 123\zj.txt'|?{$_.trim() -ne ''}|%{md ('C:\2018 备份\'+($_.trim() -replace '[\t\?\*\\:\/\|<>"]','_')) -f}
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 5# zaqmlp

谢谢。已解决。我还有个疑问,就是将代码加个括号就行了。
最后想请教下,我在调试时,若是写成这样:
Write-Host 'c:\C\'+$aa[$i]
    则得到的是所有行内容后面接中括号;
若写成这样:
Write-Host ('c:\C\'+$aa[$i])
则得到的就是正常的每行的内容。
故改成这样可以:New-Item -Path  ('C:\2018 备份\'+$aa[$i])  -ItemType directory
写成这样不行:   New-Item -Path  'C:\2018 备份\'+$aa[$i]  -ItemType directory
那么为何没有括号时显示的有问题呢?

TOP

本帖最后由 yhcfsr 于 2018-3-25 22:37 编辑
  1. New-Item -Path  "C:\2018 备份\$aa([$i])"  -ItemType directory
复制代码

TOP

回复 7# yhcfsr

不应该是"C:\2018 备份\$($aa[$i])"吗
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

本帖最后由 yhcfsr 于 2018-3-25 22:40 编辑

回复 8# zaqmlp


    没错,看了下题主的代码,的确应该加上括号。所以我代码稍微修改了下。感谢指正

TOP

返回列表