[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/14 17:41 / Filesize : 325 KB / Number-of Response : 1055
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【.cmd】 バッチファイルスクリプト %11 【.bat】



1 名前:デフォルトの名無しさん mailto:sageteoff [2015/02/25(水) 19:09:59.39 ID:5hx8q1nT.net]
拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。

※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。
前スレ
【.cmd】 バッチファイルスクリプト %10 【.bat】
peace.2ch.net/test/read.cgi/tech/1374205515/

それ以前の過去スレ
%9  toro.2ch.net/test/read.cgi/tech/1335015478/
%8  toro.2ch.net/test/read.cgi/tech/1315844420/
%7  hibari.2ch.net/test/read.cgi/tech/1298873550/
%6  hibari.2ch.net/test/read.cgi/tech/1277465356/
%5  pc12.2ch.net/test/read.cgi/tech/1242268171/
%4  pc12.2ch.net/test/read.cgi/tech/1229955189/
%3  pc11.2ch.net/test/read.cgi/tech/1217860043/
%2  pc12.2ch.net/test/read.cgi/tech/1197881068/
%1  pc11.2ch.net/test/read.cgi/tech/1178281991/

792 名前:デフォルトの名無しさん mailto:sage [2016/11/16(水) 09:56:14.36 ID:l4m+U27H.net]
こういうこと?
dir /ad /s /b | findstr /r \abc$

793 名前:デフォルトの名無しさん mailto:sage [2016/11/16(水) 16:58:26.02 ID:tgJZOdTt.net]
>>758
dir /ad /b /s | findstr /r "\\abc$"
これで行けそうかな。ありがとう


/s スイッチの時フルパスで無ければ強制的にディレクトリ名orファイル名と見做してくれればいいのに
子にあると対象パスの省略形と見なし、無ければ検索するディレクトリ&ファイル名になるとか罠もいいところだわ
dir /ad /b /s "\abc"
これだとカレントディレクトリが無視されてドライブ全体?からabcフォルダが検索されるんだけど理由が分かる人が居たら教えて下さい

794 名前:デフォルトの名無しさん mailto:sage [2016/11/16(水) 19:53:01.57 ID:G/QgDslQ.net]
>>759

for /r %%i in (.) do if "%%~nxi" == "abc" echo "%%~fi"

\abc みたいに先頭に \ があるとそれはルートを示すんだよ
DOS の頃から同じ仕様なんだけど

795 名前:デフォルトの名無しさん mailto:sage [2016/11/16(水) 20:29:10.66 ID:G/QgDslQ.net]
>>760

ABC とか Abc とか abC とか有ったら /i を追加

for /r %%i in (.) do if /i "%%~nxi" == "abc" echo "%%~fi"

796 名前:デフォルトの名無しさん mailto:sage [2016/11/16(水) 20:36:19.30 ID:tgJZOdTt.net]
dir /ad /b /s | findstr /r "\\%name%$"
てな場合nameの末尾にスペースが入ると意図した結果にならず
dir /ad /b /s | findstr /e "\%name%" で解決出来ました

>>759
for /r とif での方が間違いが無さそうですね。ありがとう
"\abc" は、まず dir /ad /b /s "C:\abc" とドライブ省略形の対象ディレクトリと見做して
対象が無ければ検索するディレクトリ名&ファイル名として扱われている感じなのかな

797 名前:デフォルトの名無しさん mailto:sage [2016/11/16(水) 22:35:57.05 ID:fww2Eit8.net]
いままでdir /sのディレクトリ指定は開始位置を指定するもんだとばかり思ってたけど違うんだな
指定ディレクトリが存在してたらこの通りで他のディレクトリの下は対象外なんだが
存在しないと他のディレクトリの下へ探しにいくんだな
気をつけないといけないな

実行速度は遅いだろうが
forfiles -s -mabc -c"cmd /c if @ISDIR==TRUE echo @PATH\@FILE"

798 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 01:33:10.64 ID:45hMt1B7.net]
>>759
dir .\abc /ad /b /s
カレント配下ならドット付けとくんじゃないの

799 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 01:41:34.94 ID:3AVvQ2An.net]
DOS/Windowsでは、単にabcとするのが普通で.\abcとは書かないかな

800 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 00:23:10.73 ID:MVrqW6/3.net]
さらに複数パターンの一致を検出してみる

for /r /d %%i in ("abc.*" "xyz.*") do if "%%~xi"=="" echo "%%~fi"



801 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 05:45:03.27 ID:aprTvklx.net]
>>765
は?

802 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 07:12:41.73 ID:MVrqW6/3.net]
フォルダに拡張子が無いとしたら
dir /ad /b /s abc.*
で良さそう

803 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 15:43:00.69 ID:MssNdFsD.net]
>>766
>>768
"abc.*"だと"abc."が最低条件になって"abc"は除外されるものだと思ってたけど"abc"も出てくるね
実際は末尾"."のフォルダは作れないから拡張子の付いているフォルダしか出ないと思ってた
なんで???"."て特殊なの?ちょっと目からウロコ

804 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 16:29:03.81 ID:TqE/rt71.net]
もともとドットは拡張子の区切り記号だったわけで
abc. = abc
Windowsになって複数のドットも付けられるようになったが
ドット2つ使うとファイル管理領域も2倍使う結果に

805 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 16:44:12.24 ID:MssNdFsD.net]
拡張子の区切り記号なのは分かるけどそれが
abc.==abc
となる理由が分からない
ドットが区切り記号だからファイル名(文字列)と見做さず比較の際に無視されるとかなのかな?

806 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 16:52:38.55 ID:TqE/rt71.net]
ファイル管理領域は、ファイル名部分と拡張子部分とに分かれており
ドットはその管理領域のどこにも書き込まれない
単に区分けする識別子の役割りしか持たない
つまり、管理上は、ファイル名=abc,拡張子=NULLってなってる
だからabc.とabcの見分けは付かない
エクスプローラでファイルをabc.で作成したってabcファイルが作られるだけ

807 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 17:06:48.25 ID:TqE/rt71.net]
なんか勘違いしてた気がする
LFNではドットもそのまま入ってる

808 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 17:12:57.12 ID:MssNdFsD.net]
>>772
>ドットはその管理領域のどこにも書き込まれない
>管理上は、ファイル名=abc,拡張子=NULL
>だからabc.とabcの見分けは付かない
詳しい説明をありがとうございます
納得出来ました。もうなんと言って良いのやら
ひとつ理解が深まりました。ドラクエのレベルアップの音が鳴り響いた気分です

809 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 17:24:08.15 ID:MssNdFsD.net]
コマンド側が古い仕様を引き摺ってると判断しておきます

810 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 18:07:23.95 ID:TqE/rt71.net]
おそらくコマンドやエクスプローラは、最後のドットに特別な意味(拡張子)を持たせて
ドットだけなら削除する仕様なんだろう



811 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 21:00:10.73 ID:TqE/rt71.net]
ピリオドと半角空白には色々と罠があるかも
md aaa
cd "aaa....."
md "abc. . . " (エクスプローラでのフォルダ・ファイル作成も同じ)
dir "abc.."
dir "abc..."(abc..とは異なる結果に)

812 名前:デフォルトの名無しさん mailto:sage [2016/11/19(土) 03:25:52.98 ID:JjiTnU56.net]
#!/bin/bash
# すれ違いですまないが

apt-get moo #に見えてきた

echo "Enter to Exit"
read wait

813 名前:デフォルトの名無しさん mailto:sage [2016/11/19(土) 04:02:30.76 ID:6BFx2XsN.net]
すれ違い杉

814 名前:デフォルトの名無しさん mailto:sage [2016/11/19(土) 10:40:41.73 ID:I/7/X0k0.net]
 ケイン

815 名前:・コスギ
 英才・出木杉
 ・・・・板違い
[]
[ここ壊れてます]

816 名前:デフォルトの名無しさん mailto:sage [2016/11/19(土) 11:47:06.46 ID:HaGDkE41.net]
>>772-773
合ってるよ
短い名前(いわゆる 8.3形式)ではカレントディレクトリの "." と ".." を除いて "." は記録されない
https://ja.m.wikipedia.org/wiki/8.3%E5%BD%A2%E5%BC%8F
LFN ではそのまま Unicode で記録される

817 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 01:32:41.69 ID:5hQ1kNDg.net]
%random% って代入すると機能を失って、クリアするとまた復活するのね。
一時変数の名前に使うとちょっと便利かも

818 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 08:06:59.15 ID:plO26YRe.net]
777

819 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 22:07:31.97 ID:mYrLDeuJ.net]
>>782
バグの元だろ

820 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 02:59:43.79 ID:bNk8tUAy.net]
%errorlevel%とか%date%に代入するとかもやりそうな気配



821 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 18:40:20.55 ID:1UsqdqxT.net]
win10が時期アプデでコマンドラインシェルをデフォルトから格下げだってさ。えらいこっちゃ

fossBytesに11月19日(米国時間)に掲載された記事「Microsoft Replaces Command Prompt
With PowerShell As Windows 10 Default Shell」が、Windows 10のデフォルトシェルが
コマンドプロンプトからPowerShellに変更されると伝えた。Windows 10 Insider Build 14971で
すでに入れ替えが実施されたと説明がある。

Windows 10 Insider Build 14971では、これ以外にもMicrosoft EdgeでEPUB電子ブックを読む
機能や新しいPaint 3Dアプリケーションの導入などが実施されている。

(後略)
news.mynavi.jp/news/2016/11/21/374/

822 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 19:58:33.06 ID:4eyhD8wV.net]
>>786
まあそろそろいいかなって思うわ
慣れれば PowerShell めっちゃ便利やし

823 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 16:32:55.50 ID:OivDuOyC.net]
>>785
おもしろい、どうなるのだろう

824 名前:デフォルトの名無しさん mailto:sage [2016/11/23(水) 04:53:34.68 ID:lMEr/SWa.net]
%参照は上書きの値、if errorlevel文には set errorlevelしても無効
set errorlevel=5 などバッチ内で errorlevelを自分で設定する場合は if errorlevel文は使えない
if %errorlevel% GEQ 1 などであれば可

825 名前:デフォルトの名無しさん mailto:sage [2016/11/23(水) 09:54:12.77 ID:pZmHnyz7.net]
WindowsPEも起動したらPowershellで始まるの?
最新のヤツでもマトモに動かせないのに

826 名前:デフォルトの名無しさん mailto:sage [2016/11/24(木) 00:02:10.88 ID:b21vlpof.net]
>>727>>728
ありがとうございます
返信遅くなりました

ただ、せっかくヒントを頂いたのですが、想像より自身のレベルに見合わないスクリプトでした。実際につくるのは先になりそうです……

827 名前:デフォルトの名無しさん mailto:sage [2016/11/24(木) 00:50:33.49 ID:aisAFXaT.net]
>>791
>>727-728 はヒントじゃなくて720の要件の全部だぞ
721をbatで保存してそのbatに親フォルダAをドロップすれば720の通りになる

828 名前:デフォルトの名無しさん mailto:sage [2016/11/26(土) 00:47:02.26 ID:61EwoExF.net]
>>727>>728>>792
ありがとうございます!できました
>>728の方が言っていた直しが正しく行えなかっただけでした
皆さん本当にありがとうございます

自分で書けるようにもなりたいのですが、皆さんどのようにバッチファイルを学んだのでしょうか
サイトなどを回ってもなかなか進まなくて……

829 名前:デフォルトの名無しさん mailto:sage [2016/11/26(土) 02:10:39.28 ID:CoCq2KiG.net]
for /?
set /?
この二つ読んでわからないところをぐぐる

830 名前:デフォルトの名無しさん mailto:sage [2016/11/26(土) 04:48:01.93 ID:0eLSGHGV.net]
「バッチ



831 名前:門」でググって出て来るページを読む
コマンド一覧を載せてるサイトを見てどんなコマンドがあるのか一通り目を通す(暗記までする必要なし)
/?でヘルプ見ながら書いて一つ一つ試す
pauseを挟みつつ期待した通りに動いてるか確認しながら書いていく
分からなければここで質問
自分の場合、リダイレクトとかエスケープとかcall set で遅延環境変数を使わない方法とかはここで教わった
何をやっているのか分からないものは必ず解読するようにすれば覚えていける
動作を理解していないとテストでは問題無く動いても本番でエラーになる事もあるからファイル操作させたりする場合は予めバックアップを取る
処理対象が大量にある場合などは1度に全てを処理せず何度かに分ける

721で難しそうなのはforのみ
最初のforで対象フォルダ("[*]*"にマッチするもの)を抽出してる
for /d %%i in ([*]*) do echo %%i
と分解してみれば分かりやすい

for /f "tokens=1* delims=[]" %%j in ("%%~i") do
delims=[] は "[" "]" の文字を区切り文字に指定
tokens=1* は1つ目のトークンを%%jに残りを%%kに
"[aaa]あああ"であれば %%jに"aaa"が %%kに"あああ"が入る

md "%%~j"&move /y "%%~i" "%%~j"
フォルダ作成&移動

"[]あああ"なんてのがあると想定していない"あああ"フォルダに移動になるから注意ね
[]
[ここ壊れてます]

832 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 09:52:07.02 ID:mLcTWF4w.net]
おはようございます。
同一フォルダ内にある複数ファイル
a.jpg、あ.jpg、1.jpg等を一括で001-a.jpg、002-あ.jpg、003-1.jpgに連番を付加する
batファイルを教えて下さい!

833 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 11:17:31.27 ID:2v7FHJZn.net]
a,あ,1の順序付けにどういう規則をつけるの?
普通の昇順降順ではこの順番にならないけど

834 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 11:19:13.96 ID:mLcTWF4w.net]
紛らわしくてすいません。
普通の昇降順でお願いします。

835 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 11:33:53.80 ID:2v7FHJZn.net]
こういうのって結構難しいんだよね
例えば、
a.jpgと001-a.jpgの二つのファイルがあったら
先に001-a.jpgをリネームして001-001-a.jpgにしないと
ファイル名が重複してリネームできなくなるし
(さらに001-001-001-a.jpgがあったりすると...)

836 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 11:57:08.03 ID:mLcTWF4w.net]
単純に今あるファイル名の先頭に001や002と連番をつけるだけで大丈夫です。
この前作ったのですが誤ってファイルを消してしまって(泣

837 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 12:22:44.82 ID:2v7FHJZn.net]
>>800
正常系だけでいいのなら
@echo off
pushd %1
set n=0
for /f "delims=" %%i in ('dir /b /on *.jpg') do (
set /a n+=1
call set nn=00%%n%%
call set nn=%%nn:~-3%%
call ren "%%~i" %%nn%%-"%%~i"
)
popd

838 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 12:47:37.07 ID:3PyehhaB.net]
作成代行スレじゃないので自力でここまではできたけどここから先がわからない
というような努力の跡がほしいなぁ

839 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 15:20:44.02 ID:V1m99hal.net]
@echo off
pushd "%~dp1"
set n=1001
:ARGCHK
if "%~1"=="" pause &exit /b
ren "%~1" "%n:~-3%-%~nx1"
echo.
echo "%~nx1"
echo "%n:~-3%-%~nx1"
set /a n+=1
shift &goto :ARGCHK


選択ファイルを送るやバッチにD&D。001から999まで
Winの仕様によりD&Dの際は先頭ファイルを掴まないと順番が狂うので注意

840 名前:デフォルトの名無しさん mailto:sage [2016/12/04(日) 12:46:34.73 ID:RTx2BH8+.net]
>>794>>799
ありがとうございます!返信遅くなりました
とくに799の方、具体的に話していただいて本当に助かりました。



841 名前:デフォルトの名無しさん mailto:sage [2016/12/04(日) 16:10:49.30 ID:J7/x1rKh.net]
799

842 名前:デフォルトの名無しさん mailto:sage [2016/12/04(日) 19:03:21.48 ID:rwQpbrj5.net]
799は素晴らしいな

843 名前:デフォルトの名無しさん mailto:sage [2016/12/10(土) 00:17:50.34 ID:CO5JTr10.net]
pushd "%~dp1" || exit /b
if not exist "title.txt" exit /b
for /f "usebackq delims=" %%a in ("title.txt") do (
ren "%~1" "%%~a%~x1"
shift
)

forの中でshiftが働きません
どう書けば良いでしょうか?
選択ファイルをドラッグ&ドロップしてtitle.txtの順通りにリネームしたいです

844 名前:801 mailto:sage [2016/12/10(土) 14:16:28.41 ID:CO5JTr10.net]
自己解決しました
@echo off
pushd "%~dp1" || exit /b
if not exist "title.txt" exit /b
:LOOP
if "%~1"=="" pause &exit /b
for /f "usebackq %SKIP%%N% delims=" %%a in ("title.txt") do (
ren "%~1" "%%~a%~x1" || (echo "%~1" "%%~a%~x1"&pause &exit /b)
goto :NEXT
)
:NEXT
if not defined SKIP set SKIP=skip=
set /a N+=1
shift &goto :LOOP

845 名前:デフォルトの名無しさん mailto:sage [2016/12/10(土) 15:09:17.17 ID:ga5ibtHW.net]
forループは実行前に式展開されてから実行されるので
式展開時に変数が内容の文字列に置き換わってしまい変数の意味を失う
@echo offを取って表示させたらわかるだろう
面倒なのでヒントだけ
for %%a 〜 do (
set b=%%a
call echo %%a - "%%~1" - %%b%%
shift
)

846 名前:デフォルトの名無しさん mailto:sage [2016/12/10(土) 16:20:43.39 ID:CO5JTr10.net]
>>809
ありがとうございます
callで遅延展開風にする場合%で囲むと思っていたので
call ren "%%~1%" "%%~a%%~x1%" と書いていて出来ませんでした
call ren "%%~1" "%%~a%%~x1" と書けば良かったのですね
%で囲むではなく「%を重ねる」と覚えるようにします

847 名前:デフォルトの名無しさん mailto:sage [2016/12/10(土) 16:27:31.21 ID:ga5ibtHW.net]
式評価されるということは、
%%→%になるっていうことなんだよ
(これは%を表記する方法として覚えるけど)
set a=echo hoge
call %%a%%
call call %%%%a%%%%

848 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 10:51:05.79 ID:HwfbXu/f.net]
>>810
引数や変数を遅延展開するのは無理あるよ
あらかじめ環境変数をセットしたものが対象であり、どのコマンドにも適用できるわけじゃない
パーセントを前方に重ねるのはバッチ上の書式、一重囲みが環境変数、call command 二重囲みが遅延展開というように意味が異なる
よくわからなければエクスクラメーション記号にするか、カッコを使った複文を避けてサブルーチンに渡す、など別の方法をとる

849 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 15:29:30.80 ID:wBKcLq5q.net]
遅延展開というより
式評価が、実行時とcallの2回実施される
一回目の式評価ではまだ変数展開が行われずに残ったままにしたい
ってのが%%にする理由

850 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 15:39:49.38 ID:wBKcLq5q.net]
for /F %%i in ('command')
形式の'command'の部分、ここにも式評価が入ることが結構忘れられる



851 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 16:35:43.66 ID:wBKcLq5q.net]
補足
commandにパイプやリダイレクト記号を書くような場合は
^| や ^>とかのように'^'を付けないとエラーになるから忘れるということは無いだろうが
忘れる場合ってのは、>>523>>538のような場合のことで
元のように%一つにしておくと何が起き得るかは"ab%cd%ef"とかが入ってる場合を考えれば解かる

852 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 22:14:02.08 ID:iHWHaBgd.net]
\/:*?"<>|
テキストファイルに含まれるこれらのファイル名に使えない文字を全角文字に置換したいのですが
バッチで試してみたところ"*は無理でした
バッチから使えるcuiソフトなどで良いものや何か方法があれば教えて下さい

あ/あ "abc"
など括弧のように対応する"がある場合は、あ/あ “abc”
あ/あ a"
など対応するものが無ければ、あ/あ a”
みたいに出来れば理想です

853 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 22:19:57.19 ID:iHWHaBgd.net]
あ/あ “abc”
が何か分かり難くなってますが
左側が左ダブル引用符という下から上へコロン打ってるやつで
右側が右ダブル引用符で上から下へのコロンです

854 名前:デフォルトの名無しさん [2016/12/14(水) 00:05:22.68 ID:vS/jNHEE.net]
netstat みたいに気軽で、もっと高速にアクセス中のホストが分かる方法ないでしょうか?
というのは、EdgeのURLを取得するのはかなり面倒なので
でも netstat の情報は1分以上遅延するので、できれば数秒で知りたい

855 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 00:51:13.45 ID:/GnWlzD4.net]
>>818
netstatそんなに遅れるか?
名前解決に時間が掛かってるんなら-nを付けて数値のみで表示させてみては?

856 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 01:19:09.19 ID:vS/jNHEE.net]
>>819
なるほど、-nなら一瞬でしたw
名前で反応したかったので、-fにしてました

857 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 01:31:44.57 ID:/GnWlzD4.net]
セッション数幾つぐらいなのか知らないけど
普通名前解決に秒単位なんてかからないよ
自分のプロバイダのところのDNSサーバー使ってるか?

858 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 01:54:27.20 ID:vS/jNHEE.net]
>>821
特に何もしてないので、プロバイダのDNSだと思います
普段は4つですが、ブラウザ開くと1ページでも何十個も出てきますね
よく見ると、一瞬で何十個もリストアップされる場面と、ひっかかる場面があって、相手先によるようですね

859 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 03:29:46.39 ID:PdV20HuV.net]
>>816-817
ファイル名には、半角英数字と、_ アンダーバーだけを使うこと

バグるアプリがあるから、それら以外の文字は使うな

860 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 04:28:14.68 ID:/GnWlzD4.net]
まあ今時ファイル名に日本語を使うなってのはちょっと無理っぽいだろ
良いものがあるかどうかは俺は知らんよ(人に探させずに自分で探すのがいいだろう)
PowerShellやWSHでやる分にはそれくらいは出来るだろうけど
ファイル名にはいろいろ落とし穴があるからなあ
長さ制限とか、con,com1等のデバイス名とか後につくピリオドや半角空白とか
com1. ..txt
とか作れない



861 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 17:45:01.83 ID:vFnJFYnV.net]
コマンドラインから「システムの環境変数」を参照するのってできる?

具体的には最近のJavaインストールすると、
システムの環境変数PATHの先頭に余計なもの追加しやがるので
それを削除するスクリプト書きたいんだよね。
設定は setx 使えばいいらしいんで、参照さえできれば削除できるかなーと。

862 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 17:55:14.06 ID:puNU7ctc.net]
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
個人的には reg export 使ってファイルでごにょるのが好み

863 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 21:30:56.66 ID:PdV20HuV.net]
PowerShell_ise では、大文字・小文字は同一として扱われる。
環境変数PATHを表示する
$Env:Path

設定は、
$str = ";C:\Program Files\Internet Explorer\"
set-item -path env:path -value "$Env:Path + $str" -WhatIf

-WhatIf を付けているので、実際には実行されないで、結果を見れる

864 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 23:47:39.26 ID:vFnJFYnV.net]
>>826
さんくす

865 名前:デフォルトの名無しさん mailto:sage [2016/12/15(木) 22:24:24.35 ID:Jry/Bq76.net]
このスレってやっぱり仕事でCMD使ってる人がほとんどなのかな?

866 名前:デフォルトの名無しさん mailto:sage [2016/12/15(木) 23:46:26.73 ID:Jj9qQdSY.net]
余裕で趣味です

867 名前:デフォルトの名無しさん mailto:sage [2016/12/16(金) 00:25:58.77 ID:EPzN1wXR.net]
今もバッチで色々やってるけど
そろそろPowershell覚えた方がいいんかナー

868 名前:デフォルトの名無しさん mailto:sage [2016/12/16(金) 03:59:28.83 ID:rja7Rz9P.net]
かなり前からそう思ってるけど.Net覚えるのが面倒臭くて先延ばしにしたままだわ

869 名前:デフォルトの名無しさん mailto:sage [2016/12/16(金) 19:20:13.39 ID:UvIhWraO.net]
少し前から cmd/wsh+vbs から PowerShell に

870 名前:移行したけどチョー楽しい
ただ各所にトリッキーなトラップがあるのと比較演算子が -eq とか -lt とかなのがいまだに慣れない
[]
[ここ壊れてます]



871 名前:デフォルトの名無しさん mailto:sage [2016/12/17(土) 20:01:48.32 ID:rAxcOYFz.net]
キッティングで使ってるけど
PowerShellはストアアプリの駆除がメインだな

872 名前:デフォルトの名無しさん mailto:sage [2016/12/18(日) 08:18:40.79 ID:qKtu6SDf.net]
シェルスクリプトはリダイレクトに > | < 使ったアホのせいで
比較演算子がまともに使えなくなったのが痛い
PowerShellではその悪習を断ち切って欲しかった

873 名前:デフォルトの名無しさん mailto:sage [2016/12/18(日) 11:49:41.76 ID:djwC/Ohb.net]
リダイレクトに<>を使ったのは大成功だったと思うがな。
PowerShellでヘンテコな構文を導入したところで、
マイクソシネって言われるだけじゃん。

悪臭というなら、パス区切り文字の\だろ。

874 名前:デフォルトの名無しさん mailto:sage [2016/12/18(日) 15:58:05.60 ID:oHmdKz4q.net]
[]も問題起こすよね

875 名前:デフォルトの名無しさん mailto:sage [2016/12/18(日) 16:00:06.55 ID:oHmdKz4q.net]
なんか四角形に見えるw
『 [ 』と『 ] 』ね。

876 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 12:20:52.68 ID:H16UOEk6.net]
豆腐屋って減ったよなあ

877 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 21:24:30.96 ID:j5IwDTpi.net]
峠を攻める豆腐屋

878 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 22:09:00.93 ID:EFgj4hJx.net]
というよりも小売りが…
八百屋なんて、そういうのがネタになっている商店街か、
近くに田畑があるようなところでしか見なくなったよ。
ほとんど全ての街ではスーパーでいいからな。

そう考えると、花屋は頑張っている。
未だにそれなりの数が残っているよな。
ま、スーパーの置き場所は限られているからか。
あとは客ひとりの利益率も悪くないんだろうなあ。

879 名前:デフォルトの名無しさん mailto:sage [2016/12/23(金) 13:16:48.65 ID:C13rqdFY.net]
自身にマウントされてるドライブ/フォルダ名を指定してその対象がローカルドライブか否か判別できるコマンドってありますか?

880 名前:デフォルトの名無しさん mailto:sage [2016/12/23(金) 13:19:26.61 ID:C13rqdFY.net]
あれ、なんか投稿が切れてる・・・

自身にマウントされてるドライブ/フォルダ名を指定してその対象がローカルドライブか否か判別できるコマンドってありますか?
『net use ドライブレター』でCIFS/WebDAVでマウントされた物かそうでないかは判断できるけど、
Dokanとかでマウントされた物も含めて、ネットワークドライブ全般を判別したいです。
(ただiSCSI/FCとかのブロックデバイスは仕方ないかなと思ってます)
よろしくお願いします。



881 名前:デフォルトの名無しさん mailto:sage [2016/12/23(金) 20:54:24.61 ID:QxIckOqH.net]
>>843
俺は以下の要領でVBScriptと併用してる

toro.2ch.net/test/read.cgi/tech/1374205515/587
>593 : デフォルトの名無しさん[sage] 投稿日:2014/06/16(月) 18:45:29.61 ID:R0cE173n [1/1回]
>>>592
> WScript.Echo CStr(CreateObject("Scripting.FileSystemObject").GetDrive(WScript.Arguments(0)).DriveType)
> ↑
>この1行をVBScriptファイルとして保存してから別途呼び出す方式にすれば、大雑把な判定なら可能。
>例えば、そのVBScriptファイルを"test.vbs"としてDドライブの種別を調べたい場合、
>コマンドプロンプト画面またはバッチファイルで以下のように実行してみる。
>cscript test.vbs d:

>すると1桁の数字が表示される。数字の意味は以下の通り。
> 1:リムーバブルドライブ(USBメモリ/SDカード/FDなど)
> 2:HDD
> 3:ネットワークドライブ
> 4:CD-ROM/CD-R/DVD-ROM/DVD-Rなど
> 5:RAMディスク

882 名前:837 mailto:sage [2016/12/23(金) 22:21:21.24 ID:l7ZH ]
[ここ壊れてます]

883 名前:1QCK.net mailto: >>844
ありがとうございます。ちゃんと機能することを確認しました。
ちなみにDokanのWin-SSHFSでマウントしたドライブは、
エクスプローラーで確認するとHDDのアイコンにも関わらず
上記のVBスクリプトの出力は何故か1でした。

流石にリパース・ポイントでマウントされているフォルダの情報とか
までは拾えないですね。
ファイルシステムやパーテションの下位レイヤーに位置している
デバイスの情報までバッチで拾うのは無理があるとは思いますが。
[]
[ここ壊れてます]

884 名前:デフォルトの名無しさん mailto:sage [2016/12/23(金) 23:59:30.85 ID:QxIckOqH.net]
>>845
あとは https://technet.microsoft.com/ja-jp/scriptcenter あたりで、他に使えそうな構文がないかどうか探すしかないのでは?
ちなみに以下の1行をVBScriptファイルとして保存してから別途呼び出す方式にすれば、任意のドライブにメディアが挿入されているかどうかを判定可能。

WScript.Echo CStr(CreateObject("Scripting.FileSystemObject").GetDrive(WScript.Arguments(0)).IsReady)

885 名前:837 mailto:sage [2016/12/24(土) 08:36:33.47 ID:bGXjBeNc.net]
>>846
ありがとうございます。
こちらのツールも勝手がよさそうですね。使わせていただきます。

886 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 12:05:37.82 ID:mYH1sKhw.net]
WSH等を使う…と言ってたらバッチの出番が無くなったりしてな

887 名前:デフォルトの名無しさん mailto:sage [2016/12/27(火) 22:52:31.05 ID:tD8K2H9A.net]
errorleveになぜか9009が急に出はじめて
びっくりして検索したら、いろいろ出た

888 名前:デフォルトの名無しさん mailto:sage [2017/01/02(月) 07:34:29.54 ID:Jfm6LKzZ.net]
msys等のprintf をプロンプトから forループ、変数 %s で実行すると困る、って夢を見たんだ

@for /d %s in ("%ProgramFiles%\M*") do @printf """%"s""" %"s"\n" "%s" "%s"

(´-`).。oO(ワケワカラン… もう一回寝たら何かひらめくかな…)

889 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 01:17:44.86 ID:mJLtkeqF.net]
pastebin.com/mEHBJq8T
こんな感じでmp4からpng形式で切り抜きたいのですが、出来ません
お願いします

890 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 01:42:13.02 ID:QYFKEjsV.net]
>>851
FILENAMEを%で囲ってないからでは



891 名前:通りすがり mailto:sage [2017/01/07(土) 09:57:36.05 ID:YuFs6plI.net]
FILENAMEを、%で囲めば、いいのか。
φ(..)メモメモ。

892 名前:デフォルトの名無しさん mailto:sage [2017/01/08(日) 00:48:03.49 ID:jXHP++jg.net]
>>852
ありがとうございます

FILENAME=hoge hage
としたい場合はどの様にしたらいいんですかね?
どこをダブルクォーテーションで囲めばいいのか分からなくて






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<325KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef